当前位置: 首页>>代码示例>>PHP>>正文


PHP ServiceManager::setShared方法代码示例

本文整理汇总了PHP中Zend\ServiceManager\ServiceManager::setShared方法的典型用法代码示例。如果您正苦于以下问题:PHP ServiceManager::setShared方法的具体用法?PHP ServiceManager::setShared怎么用?PHP ServiceManager::setShared使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Zend\ServiceManager\ServiceManager的用法示例。


在下文中一共展示了ServiceManager::setShared方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: configureServiceManager

 public function configureServiceManager(\Zend\ServiceManager\ServiceManager $serviceManager)
 {
     $serviceManager->setFactory('A', function () {
         return new A();
     });
     $serviceManager->setShared('A', true);
     $serviceManager->setFactory('B', function ($serviceManager) {
         return new B($serviceManager->get('A'));
     });
     $serviceManager->setShared('B', false);
 }
开发者ID:lucatume,项目名称:php-dependency-injection-benchmarks,代码行数:11,代码来源:test5.php

示例2: configureServiceManager

 public function configureServiceManager(\Zend\ServiceManager\ServiceManager $serviceManager)
 {
     $serviceManager->setFactory('A', function () {
         return new A();
     });
     $serviceManager->setShared('A', false);
     $serviceManager->setFactory('B', function ($serviceManager) {
         return new B($serviceManager->get('A'));
     });
     $serviceManager->setShared('B', false);
     $serviceManager->setFactory('C', function ($serviceManager) {
         return new C($serviceManager->get('B'));
     });
     $serviceManager->setShared('C', false);
     $serviceManager->setFactory('D', function ($serviceManager) {
         return new D($serviceManager->get('C'));
     });
     $serviceManager->setShared('D', false);
     $serviceManager->setFactory('E', function ($serviceManager) {
         return new E($serviceManager->get('D'));
     });
     $serviceManager->setShared('E', false);
     $serviceManager->setFactory('F', function ($serviceManager) {
         return new F($serviceManager->get('E'));
     });
     $serviceManager->setShared('F', false);
     $serviceManager->setFactory('G', function ($serviceManager) {
         return new G($serviceManager->get('F'));
     });
     $serviceManager->setShared('G', false);
     $serviceManager->setFactory('H', function ($serviceManager) {
         return new H($serviceManager->get('G'));
     });
     $serviceManager->setShared('H', false);
     $serviceManager->setFactory('I', function ($serviceManager) {
         return new I($serviceManager->get('H'));
     });
     $serviceManager->setShared('I', false);
     $serviceManager->setFactory('J', function ($serviceManager) {
         return new J($serviceManager->get('I'));
     });
     $serviceManager->setShared('J', false);
 }
开发者ID:lucatume,项目名称:php-dependency-injection-benchmarks,代码行数:43,代码来源:test6.php

示例3: testGetUsesIndivualSharedSettingWhenSetAndDeviatesFromShareByDefaultSetting

 /**
  * @covers Zend\ServiceManager\ServiceManager::get
  */
 public function testGetUsesIndivualSharedSettingWhenSetAndDeviatesFromShareByDefaultSetting()
 {
     $this->serviceManager->setAllowOverride(true);
     $this->serviceManager->setShareByDefault(false);
     $this->serviceManager->setInvokableClass('foo', 'ZendTest\\ServiceManager\\TestAsset\\Foo');
     $this->serviceManager->setShared('foo', true);
     $this->assertSame($this->serviceManager->get('foo'), $this->serviceManager->get('foo'));
     $this->serviceManager->setShareByDefault(true);
     $this->serviceManager->setInvokableClass('foo', 'ZendTest\\ServiceManager\\TestAsset\\Foo');
     $this->serviceManager->setShared('foo', false);
     $this->assertNotSame($this->serviceManager->get('foo'), $this->serviceManager->get('foo'));
 }
开发者ID:razvansividra,项目名称:pnlzf2-1,代码行数:15,代码来源:ServiceManagerTest.php

示例4: registerFactory

 /**
  * Registers a factory wrapping a Slim factory into a ZF2 factory
  *
  * @param $key
  * @param callable $callable
  * @param bool $shared
  */
 protected function registerFactory($key, callable $callable, $shared = true)
 {
     $this->sm->setFactory($key, new CallbackWrapper($this, $callable));
     $this->sm->setShared($key, $shared);
 }
开发者ID:acelaya,项目名称:slim-container-sm,代码行数:12,代码来源:Container.php

示例5: testSetSharedThrowsExceptionOnUnregisteredService

 /**
  * @covers Zend\ServiceManager\ServiceManager::setShared
  */
 public function testSetSharedThrowsExceptionOnUnregisteredService()
 {
     $this->setExpectedException('Zend\ServiceManager\Exception\ServiceNotFoundException');
     $this->serviceManager->setShared('foo', true);
 }
开发者ID:,项目名称:,代码行数:8,代码来源:

示例6: configureServiceManager

 /**
  * Configure the provided service manager instance with the configuration
  * in this class.
  *
  * In addition to using each of the internal properties to configure the
  * service manager, also adds an initializer to inject ServiceManagerAware
  * and ServiceLocatorAware classes with the service manager.
  *
  * @param ServiceManager $serviceManager
  */
 public function configureServiceManager(ServiceManager $serviceManager)
 {
     foreach ($this->invokables as $name => $class) {
         $serviceManager->setInvokableClass($name, $class);
     }
     foreach ($this->factories as $name => $factoryClass) {
         $serviceManager->setFactory($name, $factoryClass);
     }
     foreach ($this->abstractFactories as $factoryClass) {
         $serviceManager->addAbstractFactory($factoryClass);
     }
     foreach ($this->aliases as $name => $service) {
         $serviceManager->setAlias($name, $service);
     }
     foreach ($this->shared as $name => $value) {
         $serviceManager->setShared($name, $value);
     }
     $serviceManager->addInitializer(function ($instance) use($serviceManager) {
         if ($instance instanceof EventManagerAwareInterface) {
             if ($instance->getEventManager() instanceof EventManagerInterface) {
                 $instance->getEventManager()->setSharedManager($serviceManager->get('SharedEventManager'));
             } else {
                 $instance->setEventManager($serviceManager->get('EventManager'));
             }
         }
     });
     $serviceManager->addInitializer(function ($instance) use($serviceManager) {
         if ($instance instanceof ServiceManagerAwareInterface) {
             $instance->setServiceManager($serviceManager);
         }
     });
     $serviceManager->addInitializer(function ($instance) use($serviceManager) {
         if ($instance instanceof ServiceLocatorAwareInterface) {
             $instance->setServiceLocator($serviceManager);
         }
     });
     $serviceManager->setService('ServiceManager', $serviceManager);
 }
开发者ID:dragoonis,项目名称:framework,代码行数:48,代码来源:ServiceManagerConfig.php

示例7: build

 /**
  * @param $config
  * @param array $data
  * @return array|object|ViewModel
  */
 public function build($config, array $data = array())
 {
     $allOptions = $this->config->getOptions();
     $i = 0;
     $queue = new \SplQueue();
     $queue->enqueue($config);
     while ($queue->count() > 0) {
         $options = $queue->dequeue();
         $options = $this->config->applyInheritance($options);
         if (isset($options['viewModel'])) {
             $this->serviceLocator->setShared($options['viewModel'], false);
             $viewModel = $this->serviceLocator->get($options['viewModel']);
         } else {
             $viewModel = new ZendViewModel();
         }
         if ($i == 0) {
             $rootViewModel = $viewModel;
         }
         if (isset($options['template'])) {
             $viewModel->setTemplate($options['template']);
         }
         if (isset($options['capture'])) {
             $viewModel->setCaptureTo($options['capture']);
         } elseif (isset($options['id'])) {
             $viewModel->setCaptureTo($options['id']);
         }
         if (isset($options['data']['static'])) {
             $viewModel->setVariables($options['data']['static']);
         }
         if (isset($options['data']['fromGlobal'])) {
             $globalVar = $options['data']['fromGlobal'];
             if (is_array($globalVar)) {
                 foreach ($globalVar as $globalVarName => $viewVarName) {
                     $globalVarValue = $this->getVarValue($globalVarName, $data);
                     $viewModel->setVariable($viewVarName, $globalVarValue);
                 }
             } else {
                 $globalVarValue = $this->getVarValue($globalVar, $data);
                 $viewModel->setVariable($globalVar, $globalVarValue);
             }
         }
         if (isset($options['parent'])) {
             /** @var ViewModel $parent */
             $parent = $options['parent'];
             $parent->addChild($viewModel, $viewModel->captureTo(), true);
             if (isset($options['data']['fromParent'])) {
                 $varFromParent = $options['data']['fromParent'];
                 $parentVars = $parent->getVariables();
                 if (is_array($varFromParent)) {
                     foreach ($varFromParent as $varFromParentName => $viewVarName) {
                         $fromParentVal = $this->getVarValue($varFromParentName, $parentVars);
                         if ($fromParentVal === null) {
                             $fromParentVal = $parent->getVariable($varFromParentName);
                         }
                         if (is_array($viewVarName)) {
                             $dataFromParent = [];
                             foreach ($viewVarName as $varName) {
                                 $dataFromParent[$varName] = $fromParentVal;
                             }
                         } else {
                             $dataFromParent = [$viewVarName => $fromParentVal];
                         }
                         $viewModel->setVariables($dataFromParent);
                     }
                 } else {
                     $viewVarName = $options['data']['fromParent'];
                     $fromParentVal = $this->getVarValue($viewVarName, $parentVars);
                     if ($fromParentVal === null) {
                         $fromParentVal = $parent->getVariable($viewVarName);
                     }
                     $viewModel->setVariables([$viewVarName => $fromParentVal]);
                 }
             }
         }
         if (!empty($options['children'])) {
             foreach ($options['children'] as $childId => $child) {
                 if (is_string($child)) {
                     $childId = $child;
                     $child = $allOptions[$child];
                 }
                 if (isset($options['childrenDynamicLists'][$childId])) {
                     continue;
                 }
                 $child['id'] = $childId;
                 $child['parent'] = $viewModel;
                 $queue->enqueue($child);
             }
         }
         if (isset($options['childrenDynamicLists'])) {
             foreach ($options['childrenDynamicLists'] as $childName => $listName) {
                 $list = $viewModel->getVariable($listName);
                 if ($list === null) {
                     throw new \UnexpectedValueException("Cannot build children list of '{$childName}' by '{$listName}' list . View does not contain variable '{$listName}'.");
                 }
                 if (!is_array($list) && !$list instanceof \Traversable) {
//.........这里部分代码省略.........
开发者ID:sebaks,项目名称:view,代码行数:101,代码来源:ViewBuilder.php


注:本文中的Zend\ServiceManager\ServiceManager::setShared方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。