1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
<?php
namespace Opis\Closure\Test;
use Closure;
use Opis\Closure\ClosureContext;
use Opis\Closure\ClosureContext as SomeAlias;
use Opis\Closure\SerializableClosure;
final class NamespaceTest extends \PHPUnit\Framework\TestCase
{
public function testNamespacedObjectInsideClosure()
{
$closure = function () {
$object = new ClosureContext();
self::assertInstanceOf('\Opis\Closure\ClosureContext', $object);
self::assertInstanceOf(SomeAlias::class, $object);
};
$executable = $this->s($closure);
$executable();
}
protected function s($closure)
{
if ($closure instanceof Closure) {
$closure = new SerializableClosure($closure);
}
return unserialize(serialize($closure))->getClosure();
}
}
|