Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php namespace Psalm\Tests\ReturnTypeProvider; use Psalm\Tests\TestCase; use Psalm\Test..

Decoded Output download

<?php

namespace Psalm\Tests\ReturnTypeProvider;

use Psalm\Tests\TestCase;
use Psalm\Tests\Traits\ValidCodeAnalysisTestTrait;

use function addslashes;

use const DIRECTORY_SEPARATOR;

class DirnameTest extends TestCase
{
    use ValidCodeAnalysisTestTrait;

    public function providerValidCodeParse(): iterable
    {
        $input = 'a' . DIRECTORY_SEPARATOR . 'b' . DIRECTORY_SEPARATOR . 'c';

        yield 'dirnameOfLiteralStringPathReturnsLiteralString' => [
            'code' => '<?php
                $dir = dirname("' . $input . '");
            ',
            'assertions' => [
                '$dir===' => "'a" . addslashes(DIRECTORY_SEPARATOR) . "b'",
            ],
        ];

        yield 'dirnameOfStringPathReturnsString' => [
            'code' => '<?php
                $dir = dirname(implode("", range("a", "c")));
            ',
            'assertions' => [
                '$dir===' => 'string',
            ],
        ];

        yield 'dirnameOfIntLevelLiteralReturnsLiteral' => [
            'code' => '<?php
                $dir = dirname("' . $input . '", 10);
            ',
            'assertions' => [
                '$dir===' => "'.'",
            ],
        ];

        yield 'dirnameOfNonEmptyStringIntLevelOneReturnsNonEmptyString' => [
            'code' => '<?php
                $dir = dirname(uniqid() . "abc", 2);
            ',
            'assertions' => [
                '$dir===' => 'non-falsy-string',
            ],
        ];

        yield 'dirnameOfNonEmptyShouldBeNonFalsy' => [
            'code' => '<?php
                $foo = rand(0, 1) ? "0" : "world";
                $dir = dirname($foo, 20);
            ',
            'assertions' => [
                '$dir===' => 'non-falsy-string',
            ],
        ];

        yield 'dirnameOfEmptyShouldBeString' => [
            'code' => '<?php
                $foo = rand(0, 1) ? "" : "world";
                $dir = dirname($foo, 20);
            ',
            'assertions' => [
                '$dir===' => 'string',
            ],
        ];
    }
}
 ?>

Did this file decode correctly?

Original Code

<?php

namespace Psalm\Tests\ReturnTypeProvider;

use Psalm\Tests\TestCase;
use Psalm\Tests\Traits\ValidCodeAnalysisTestTrait;

use function addslashes;

use const DIRECTORY_SEPARATOR;

class DirnameTest extends TestCase
{
    use ValidCodeAnalysisTestTrait;

    public function providerValidCodeParse(): iterable
    {
        $input = 'a' . DIRECTORY_SEPARATOR . 'b' . DIRECTORY_SEPARATOR . 'c';

        yield 'dirnameOfLiteralStringPathReturnsLiteralString' => [
            'code' => '<?php
                $dir = dirname("' . $input . '");
            ',
            'assertions' => [
                '$dir===' => "'a" . addslashes(DIRECTORY_SEPARATOR) . "b'",
            ],
        ];

        yield 'dirnameOfStringPathReturnsString' => [
            'code' => '<?php
                $dir = dirname(implode("", range("a", "c")));
            ',
            'assertions' => [
                '$dir===' => 'string',
            ],
        ];

        yield 'dirnameOfIntLevelLiteralReturnsLiteral' => [
            'code' => '<?php
                $dir = dirname("' . $input . '", 10);
            ',
            'assertions' => [
                '$dir===' => "'.'",
            ],
        ];

        yield 'dirnameOfNonEmptyStringIntLevelOneReturnsNonEmptyString' => [
            'code' => '<?php
                $dir = dirname(uniqid() . "abc", 2);
            ',
            'assertions' => [
                '$dir===' => 'non-falsy-string',
            ],
        ];

        yield 'dirnameOfNonEmptyShouldBeNonFalsy' => [
            'code' => '<?php
                $foo = rand(0, 1) ? "0" : "world";
                $dir = dirname($foo, 20);
            ',
            'assertions' => [
                '$dir===' => 'non-falsy-string',
            ],
        ];

        yield 'dirnameOfEmptyShouldBeString' => [
            'code' => '<?php
                $foo = rand(0, 1) ? "" : "world";
                $dir = dirname($foo, 20);
            ',
            'assertions' => [
                '$dir===' => 'string',
            ],
        ];
    }
}

Function Calls

None

Variables

None

Stats

MD5 f19e7ad911ece7d29c20b57743471b95
Eval Count 0
Decode Time 85 ms