Server IP : 127.0.0.2 / Your IP : 3.16.48.163 Web Server : Apache/2.4.18 (Ubuntu) System : User : www-data ( ) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : disk_free_space,disk_total_space,diskfreespace,dl,exec,fpaththru,getmyuid,getmypid,highlight_file,ignore_user_abord,leak,listen,link,opcache_get_configuration,opcache_get_status,passthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,php_uname,phpinfo,posix_ctermid,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix,_getppid,posix_getpwnam,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_times,posix_ttyname,posix_uname,pclose,popen,proc_open,proc_close,proc_get_status,proc_nice,proc_terminate,shell_exec,source,show_source,system,virtual MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/html/vendor/symfony/var-dumper/Tests/Caster/ |
Upload File : |
<?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\VarDumper\Tests\Caster; use Symfony\Component\VarDumper\Test\VarDumperTestTrait; use Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo; use Symfony\Component\VarDumper\Tests\Fixtures\NotLoadableClass; /** * @author Nicolas Grekas <p@tchwork.com> */ class ReflectionCasterTest extends \PHPUnit_Framework_TestCase { use VarDumperTestTrait; public function testReflectionCaster() { $var = new \ReflectionClass('ReflectionClass'); $this->assertDumpMatchesFormat( <<<'EOTXT' ReflectionClass { +name: "ReflectionClass" %Aimplements: array:%d [ 0 => "Reflector" %A] constants: array:3 [ "IS_IMPLICIT_ABSTRACT" => 16 "IS_EXPLICIT_ABSTRACT" => 32 "IS_FINAL" => %d ] properties: array:%d [ "name" => ReflectionProperty { %A +name: "name" +class: "ReflectionClass" %A modifiers: "public" } %A] methods: array:%d [ %A "export" => ReflectionMethod { +name: "export" +class: "ReflectionClass" %A parameters: { $%s: ReflectionParameter { %A position: 0 %A } EOTXT , $var ); } public function testClosureCaster() { $a = $b = 123; $var = function ($x) use ($a, &$b) {}; $this->assertDumpMatchesFormat( <<<EOTXT Closure { %Aparameters: { \$x: {} } use: { \$a: 123 \$b: & 123 } file: "%sReflectionCasterTest.php" line: "66 to 66" } EOTXT , $var ); } public function testReflectionParameter() { $var = new \ReflectionParameter(__NAMESPACE__.'\reflectionParameterFixture', 0); $this->assertDumpMatchesFormat( <<<'EOTXT' ReflectionParameter { +name: "arg1" position: 0 typeHint: "Symfony\Component\VarDumper\Tests\Fixtures\NotLoadableClass" default: null } EOTXT , $var ); } /** * @requires PHP 7.0 */ public function testReflectionParameterScalar() { $f = eval('return function (int $a) {};'); $var = new \ReflectionParameter($f, 0); $this->assertDumpMatchesFormat( <<<'EOTXT' ReflectionParameter { +name: "a" position: 0 typeHint: "int" } EOTXT , $var ); } /** * @requires PHP 7.0 */ public function testReturnType() { $f = eval('return function ():int {};'); $line = __LINE__ - 1; $this->assertDumpMatchesFormat( <<<EOTXT Closure { returnType: "int" class: "Symfony\Component\VarDumper\Tests\Caster\ReflectionCasterTest" this: Symfony\Component\VarDumper\Tests\Caster\ReflectionCasterTest { …} file: "%sReflectionCasterTest.php($line) : eval()'d code" line: "1 to 1" } EOTXT , $f ); } /** * @requires PHP 7.0 */ public function testGenerator() { if (extension_loaded('xdebug')) { $this->markTestSkipped('xdebug is active'); } $g = new GeneratorDemo(); $g = $g->baz(); $r = new \ReflectionGenerator($g); $xDump = <<<'EODUMP' Generator { this: Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo { …} executing: { Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo->baz(): { %sGeneratorDemo.php:14: """ {\n yield from bar();\n }\n """ } } } EODUMP; $this->assertDumpMatchesFormat($xDump, $g); foreach ($g as $v) { break; } $xDump = <<<'EODUMP' array:2 [ 0 => ReflectionGenerator { this: Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo { …} trace: { 3. Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo::foo() ==> yield(): { src: { %sGeneratorDemo.php:9: """ {\n yield 1;\n }\n """ } } 2. Symfony\Component\VarDumper\Tests\Fixtures\bar() ==> Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo::foo(): { src: { %sGeneratorDemo.php:20: """ {\n yield from GeneratorDemo::foo();\n }\n """ } } 1. Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo->baz() ==> Symfony\Component\VarDumper\Tests\Fixtures\bar(): { src: { %sGeneratorDemo.php:14: """ {\n yield from bar();\n }\n """ } } } } 1 => Generator { executing: { Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo::foo(): { %sGeneratorDemo.php:10: """ yield 1;\n }\n \n """ } } } ] EODUMP; $this->assertDumpMatchesFormat($xDump, array($r, $r->getExecutingGenerator())); } } function reflectionParameterFixture(NotLoadableClass $arg1 = null, $arg2) { }