php Symfony-Component-DependencyInjection-Loader-ClosureLoader类(方法)实例源码

下面列出了php Symfony-Component-DependencyInjection-Loader-ClosureLoader 类(方法)源码代码实例,从而了解它的用法。

作者:BusinessCookie    项目:CoffeeMachineProjec   
public function testLoad()
 {
     $loader = new ClosureLoader($container = new ContainerBuilder());
     $loader->load(function ($container) {
         $container->setParameter('foo', 'foo');
     });
     $this->assertEquals('foo', $container->getParameter('foo'), '->load() loads a \\Closure resource');
 }

作者:tejdeep    项目:tejcs.co   
public function testLazyLoadedService()
 {
     $loader = new ClosureLoader($container = new ContainerBuilder());
     $loader->load(function (ContainerBuilder $container) {
         $container->set('a', new \BazClass());
         $definition = new Definition('BazClass');
         $definition->setLazy(true);
         $container->setDefinition('a', $definition);
     });
     $container->setResourceTracking(true);
     $container->compile();
     $class = new \BazClass();
     $reflectionClass = new \ReflectionClass($class);
     $r = new \ReflectionProperty($container, 'resources');
     $r->setAccessible(true);
     $resources = $r->getValue($container);
     $classInList = false;
     foreach ($resources as $resource) {
         if ($resource->getResource() === $reflectionClass->getFileName()) {
             $classInList = true;
             break;
         }
     }
     $this->assertTrue($classInList);
 }

作者:Gladho    项目:symfon   
protected function createContainerFromClosure($closure, $data = array())
 {
     $container = $this->createContainer($data);
     $container->registerExtension(new FrameworkExtension());
     $loader = new ClosureLoader($container);
     $loader->load($closure);
     $container->getCompilerPassConfig()->setOptimizationPasses(array());
     $container->getCompilerPassConfig()->setRemovingPasses(array());
     $container->compile();
     return $container;
 }


问题


面经


文章

微信
公众号

扫码关注公众号