[ProxyManager] Cleanup fixtures
This commit is contained in:
parent
a90250d8da
commit
31843d6f98
|
@ -25,6 +25,39 @@ use Symfony\Component\DependencyInjection\Dumper\PhpDumper;
|
||||||
class PhpDumperTest extends TestCase
|
class PhpDumperTest extends TestCase
|
||||||
{
|
{
|
||||||
public function testDumpContainerWithProxyService()
|
public function testDumpContainerWithProxyService()
|
||||||
|
{
|
||||||
|
$this->assertStringMatchesFormatFile(
|
||||||
|
__DIR__.'/../Fixtures/php/lazy_service_structure.txt',
|
||||||
|
$this->dumpLazyServiceProjectServiceContainer(),
|
||||||
|
'->dump() does generate proxy lazy loading logic.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Verifies that the generated container retrieves the same proxy instance on multiple subsequent requests.
|
||||||
|
*/
|
||||||
|
public function testDumpContainerWithProxyServiceWillShareProxies()
|
||||||
|
{
|
||||||
|
if (!class_exists('LazyServiceProjectServiceContainer', false)) {
|
||||||
|
eval('?>'.$this->dumpLazyServiceProjectServiceContainer());
|
||||||
|
}
|
||||||
|
|
||||||
|
$container = new \LazyServiceProjectServiceContainer();
|
||||||
|
|
||||||
|
$proxy = $container->get('foo');
|
||||||
|
$this->assertInstanceOf('stdClass', $proxy);
|
||||||
|
$this->assertInstanceOf('ProxyManager\Proxy\LazyLoadingInterface', $proxy);
|
||||||
|
$this->assertSame($proxy, $container->get('foo'));
|
||||||
|
|
||||||
|
$this->assertFalse($proxy->isProxyInitialized());
|
||||||
|
|
||||||
|
$proxy->initializeProxy();
|
||||||
|
|
||||||
|
$this->assertTrue($proxy->isProxyInitialized());
|
||||||
|
$this->assertSame($proxy, $container->get('foo'));
|
||||||
|
}
|
||||||
|
|
||||||
|
private function dumpLazyServiceProjectServiceContainer()
|
||||||
{
|
{
|
||||||
$container = new ContainerBuilder();
|
$container = new ContainerBuilder();
|
||||||
|
|
||||||
|
@ -36,39 +69,6 @@ class PhpDumperTest extends TestCase
|
||||||
|
|
||||||
$dumper->setProxyDumper(new ProxyDumper());
|
$dumper->setProxyDumper(new ProxyDumper());
|
||||||
|
|
||||||
$dumpedString = $dumper->dump();
|
return $dumper->dump(array('class' => 'LazyServiceProjectServiceContainer'));
|
||||||
|
|
||||||
$this->assertStringMatchesFormatFile(
|
|
||||||
__DIR__.'/../Fixtures/php/lazy_service_structure.txt',
|
|
||||||
$dumpedString,
|
|
||||||
'->dump() does generate proxy lazy loading logic.'
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Verifies that the generated container retrieves the same proxy instance on multiple subsequent requests.
|
|
||||||
*/
|
|
||||||
public function testDumpContainerWithProxyServiceWillShareProxies()
|
|
||||||
{
|
|
||||||
// detecting ProxyManager v2
|
|
||||||
if (class_exists('ProxyManager\ProxyGenerator\LazyLoading\MethodGenerator\StaticProxyConstructor')) {
|
|
||||||
require_once __DIR__.'/../Fixtures/php/lazy_service_with_hints.php';
|
|
||||||
} else {
|
|
||||||
require_once __DIR__.'/../Fixtures/php/lazy_service.php';
|
|
||||||
}
|
|
||||||
|
|
||||||
$container = new \LazyServiceProjectServiceContainer();
|
|
||||||
|
|
||||||
/* @var $proxy \stdClass_c1d194250ee2e2b7d2eab8b8212368a8 */
|
|
||||||
$proxy = $container->get('foo');
|
|
||||||
$this->assertInstanceOf('stdClass_c1d194250ee2e2b7d2eab8b8212368a8', $proxy);
|
|
||||||
$this->assertSame($proxy, $container->get('foo'));
|
|
||||||
|
|
||||||
$this->assertFalse($proxy->isProxyInitialized());
|
|
||||||
|
|
||||||
$proxy->initializeProxy();
|
|
||||||
|
|
||||||
$this->assertTrue($proxy->isProxyInitialized());
|
|
||||||
$this->assertSame($proxy, $container->get('foo'));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,185 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
|
||||||
use Symfony\Component\DependencyInjection\Container;
|
|
||||||
use Symfony\Component\DependencyInjection\Exception\InactiveScopeException;
|
|
||||||
use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
|
|
||||||
use Symfony\Component\DependencyInjection\Exception\LogicException;
|
|
||||||
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
|
|
||||||
use Symfony\Component\DependencyInjection\Reference;
|
|
||||||
use Symfony\Component\DependencyInjection\Parameter;
|
|
||||||
use Symfony\Component\DependencyInjection\ParameterBag\FrozenParameterBag;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ProjectServiceContainer.
|
|
||||||
*
|
|
||||||
* This class has been auto-generated
|
|
||||||
* by the Symfony Dependency Injection Component.
|
|
||||||
*/
|
|
||||||
class LazyServiceProjectServiceContainer extends Container
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Constructor.
|
|
||||||
*/
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
$this->services =
|
|
||||||
$this->scopedServices =
|
|
||||||
$this->scopeStacks = array();
|
|
||||||
$this->scopes = array();
|
|
||||||
$this->scopeChildren = array();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the 'foo' service.
|
|
||||||
*
|
|
||||||
* This service is shared.
|
|
||||||
* This method always returns the same instance of the service.
|
|
||||||
*
|
|
||||||
* @param bool $lazyLoad whether to try lazy-loading the service with a proxy
|
|
||||||
*
|
|
||||||
* @return stdClass A stdClass instance
|
|
||||||
*/
|
|
||||||
public function getFooService($lazyLoad = true)
|
|
||||||
{
|
|
||||||
if ($lazyLoad) {
|
|
||||||
$container = $this;
|
|
||||||
|
|
||||||
return $this->services['foo'] = new stdClass_c1d194250ee2e2b7d2eab8b8212368a8(
|
|
||||||
function (&$wrappedInstance, \ProxyManager\Proxy\LazyLoadingInterface $proxy) use ($container) {
|
|
||||||
$wrappedInstance = $container->getFooService(false);
|
|
||||||
|
|
||||||
$proxy->setProxyInitializer(null);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
return new \stdClass();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class stdClass_c1d194250ee2e2b7d2eab8b8212368a8 extends \stdClass implements \ProxyManager\Proxy\LazyLoadingInterface, \ProxyManager\Proxy\ValueHolderInterface
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @var \Closure|null initializer responsible for generating the wrapped object
|
|
||||||
*/
|
|
||||||
private $valueHolder5157dd96e88c0 = null;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var \Closure|null initializer responsible for generating the wrapped object
|
|
||||||
*/
|
|
||||||
private $initializer5157dd96e8924 = null;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @override constructor for lazy initialization
|
|
||||||
*
|
|
||||||
* @param \Closure|null $initializer
|
|
||||||
*/
|
|
||||||
public function __construct($initializer)
|
|
||||||
{
|
|
||||||
$this->initializer5157dd96e8924 = $initializer;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param string $name
|
|
||||||
*/
|
|
||||||
public function __get($name)
|
|
||||||
{
|
|
||||||
$this->initializer5157dd96e8924 && $this->initializer5157dd96e8924->__invoke($this->valueHolder5157dd96e88c0, $this, '__get', array('name' => $name));
|
|
||||||
|
|
||||||
return $this->valueHolder5157dd96e88c0->$name;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param string $name
|
|
||||||
* @param mixed $value
|
|
||||||
*/
|
|
||||||
public function __set($name, $value)
|
|
||||||
{
|
|
||||||
$this->initializer5157dd96e8924 && $this->initializer5157dd96e8924->__invoke($this->valueHolder5157dd96e88c0, $this, '__set', array('name' => $name, 'value' => $value));
|
|
||||||
|
|
||||||
$this->valueHolder5157dd96e88c0->$name = $value;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param string $name
|
|
||||||
*
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
public function __isset($name)
|
|
||||||
{
|
|
||||||
$this->initializer5157dd96e8924 && $this->initializer5157dd96e8924->__invoke($this->valueHolder5157dd96e88c0, $this, '__isset', array('name' => $name));
|
|
||||||
|
|
||||||
return isset($this->valueHolder5157dd96e88c0->$name);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param string $name
|
|
||||||
*/
|
|
||||||
public function __unset($name)
|
|
||||||
{
|
|
||||||
$this->initializer5157dd96e8924 && $this->initializer5157dd96e8924->__invoke($this->valueHolder5157dd96e88c0, $this, '__unset', array('name' => $name));
|
|
||||||
|
|
||||||
unset($this->valueHolder5157dd96e88c0->$name);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function __clone()
|
|
||||||
{
|
|
||||||
$this->initializer5157dd96e8924 && $this->initializer5157dd96e8924->__invoke($this->valueHolder5157dd96e88c0, $this, '__clone', array());
|
|
||||||
|
|
||||||
$this->valueHolder5157dd96e88c0 = clone $this->valueHolder5157dd96e88c0;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function __sleep()
|
|
||||||
{
|
|
||||||
$this->initializer5157dd96e8924 && $this->initializer5157dd96e8924->__invoke($this->valueHolder5157dd96e88c0, $this, '__sleep', array());
|
|
||||||
|
|
||||||
return array('valueHolder5157dd96e88c0');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function __wakeup()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function setProxyInitializer(\Closure $initializer = null)
|
|
||||||
{
|
|
||||||
$this->initializer5157dd96e8924 = $initializer;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function getProxyInitializer()
|
|
||||||
{
|
|
||||||
return $this->initializer5157dd96e8924;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function initializeProxy()
|
|
||||||
{
|
|
||||||
return $this->initializer5157dd96e8924 && $this->initializer5157dd96e8924->__invoke($this->valueHolder5157dd96e88c0, $this, 'initializeProxy', array());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function isProxyInitialized()
|
|
||||||
{
|
|
||||||
return null !== $this->valueHolder5157dd96e88c0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function getWrappedValueHolderValue()
|
|
||||||
{
|
|
||||||
return $this->valueHolder5157dd96e88c0;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
use %a
|
use %a
|
||||||
class ProjectServiceContainer extends Container
|
class LazyServiceProjectServiceContainer extends Container
|
||||||
{%a
|
{%a
|
||||||
public function getFooService($lazyLoad = true)
|
public function getFooService($lazyLoad = true)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,180 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
|
||||||
use Symfony\Component\DependencyInjection\Container;
|
|
||||||
use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
|
|
||||||
use Symfony\Component\DependencyInjection\Exception\LogicException;
|
|
||||||
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
|
|
||||||
use Symfony\Component\DependencyInjection\Reference;
|
|
||||||
use Symfony\Component\DependencyInjection\Parameter;
|
|
||||||
use Symfony\Component\DependencyInjection\ParameterBag\FrozenParameterBag;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ProjectServiceContainer.
|
|
||||||
*
|
|
||||||
* This class has been auto-generated
|
|
||||||
* by the Symfony Dependency Injection Component.
|
|
||||||
*/
|
|
||||||
class LazyServiceProjectServiceContainer extends Container
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Constructor.
|
|
||||||
*/
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
$this->services = array();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the 'foo' service.
|
|
||||||
*
|
|
||||||
* This service is shared.
|
|
||||||
* This method always returns the same instance of the service.
|
|
||||||
*
|
|
||||||
* @param bool $lazyLoad whether to try lazy-loading the service with a proxy
|
|
||||||
*
|
|
||||||
* @return stdClass A stdClass instance
|
|
||||||
*/
|
|
||||||
public function getFooService($lazyLoad = true)
|
|
||||||
{
|
|
||||||
if ($lazyLoad) {
|
|
||||||
$container = $this;
|
|
||||||
|
|
||||||
return $this->services['foo'] = new stdClass_c1d194250ee2e2b7d2eab8b8212368a8(
|
|
||||||
function (&$wrappedInstance, \ProxyManager\Proxy\LazyLoadingInterface $proxy) use ($container) {
|
|
||||||
$wrappedInstance = $this->getFooService(false);
|
|
||||||
|
|
||||||
$proxy->setProxyInitializer(null);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
return new \stdClass();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class stdClass_c1d194250ee2e2b7d2eab8b8212368a8 extends \stdClass implements \ProxyManager\Proxy\LazyLoadingInterface, \ProxyManager\Proxy\ValueHolderInterface
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @var \Closure|null initializer responsible for generating the wrapped object
|
|
||||||
*/
|
|
||||||
private $valueHolder5157dd96e88c0 = null;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var \Closure|null initializer responsible for generating the wrapped object
|
|
||||||
*/
|
|
||||||
private $initializer5157dd96e8924 = null;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @override constructor for lazy initialization
|
|
||||||
*
|
|
||||||
* @param \Closure|null $initializer
|
|
||||||
*/
|
|
||||||
public function __construct($initializer)
|
|
||||||
{
|
|
||||||
$this->initializer5157dd96e8924 = $initializer;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param string $name
|
|
||||||
*/
|
|
||||||
public function __get($name)
|
|
||||||
{
|
|
||||||
$this->initializer5157dd96e8924 && $this->initializer5157dd96e8924->__invoke($this->valueHolder5157dd96e88c0, $this, '__get', array('name' => $name));
|
|
||||||
|
|
||||||
return $this->valueHolder5157dd96e88c0->$name;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param string $name
|
|
||||||
* @param mixed $value
|
|
||||||
*/
|
|
||||||
public function __set($name, $value)
|
|
||||||
{
|
|
||||||
$this->initializer5157dd96e8924 && $this->initializer5157dd96e8924->__invoke($this->valueHolder5157dd96e88c0, $this, '__set', array('name' => $name, 'value' => $value));
|
|
||||||
|
|
||||||
$this->valueHolder5157dd96e88c0->$name = $value;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param string $name
|
|
||||||
*
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
public function __isset($name)
|
|
||||||
{
|
|
||||||
$this->initializer5157dd96e8924 && $this->initializer5157dd96e8924->__invoke($this->valueHolder5157dd96e88c0, $this, '__isset', array('name' => $name));
|
|
||||||
|
|
||||||
return isset($this->valueHolder5157dd96e88c0->$name);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param string $name
|
|
||||||
*/
|
|
||||||
public function __unset($name)
|
|
||||||
{
|
|
||||||
$this->initializer5157dd96e8924 && $this->initializer5157dd96e8924->__invoke($this->valueHolder5157dd96e88c0, $this, '__unset', array('name' => $name));
|
|
||||||
|
|
||||||
unset($this->valueHolder5157dd96e88c0->$name);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function __clone()
|
|
||||||
{
|
|
||||||
$this->initializer5157dd96e8924 && $this->initializer5157dd96e8924->__invoke($this->valueHolder5157dd96e88c0, $this, '__clone', array());
|
|
||||||
|
|
||||||
$this->valueHolder5157dd96e88c0 = clone $this->valueHolder5157dd96e88c0;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function __sleep()
|
|
||||||
{
|
|
||||||
$this->initializer5157dd96e8924 && $this->initializer5157dd96e8924->__invoke($this->valueHolder5157dd96e88c0, $this, '__sleep', array());
|
|
||||||
|
|
||||||
return array('valueHolder5157dd96e88c0');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function __wakeup()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function setProxyInitializer(\Closure $initializer = null)
|
|
||||||
{
|
|
||||||
$this->initializer5157dd96e8924 = $initializer;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function getProxyInitializer()
|
|
||||||
{
|
|
||||||
return $this->initializer5157dd96e8924;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function initializeProxy(): bool
|
|
||||||
{
|
|
||||||
return $this->initializer5157dd96e8924 && $this->initializer5157dd96e8924->__invoke($this->valueHolder5157dd96e88c0, $this, 'initializeProxy', array());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function isProxyInitialized(): bool
|
|
||||||
{
|
|
||||||
return null !== $this->valueHolder5157dd96e88c0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function getWrappedValueHolderValue()
|
|
||||||
{
|
|
||||||
return $this->valueHolder5157dd96e88c0;
|
|
||||||
}
|
|
||||||
}
|
|
Reference in New Issue