public function createService(ServiceLocatorInterface $serviceLocator) { $helper = new Navigation(); $helper->setServiceLocator($serviceLocator); $config = $serviceLocator->getServiceLocator()->get('config'); if (isset($config['navigation_helpers'])) { $config = new \Zend\ServiceManager\Config($config['navigation_helpers']); $config->configureServiceManager($helper->getPluginManager()); } return $helper; }
/** * Configure the provided service manager instance with the configuration * in this class. * * Simply adds a factory for the navigation helper, and has it inject the helper * with the service locator instance. * * @param ServiceManager $serviceManager * @return void */ public function configureServiceManager(ServiceManager $serviceManager) { $serviceManager->setFactory('navigation', function (HelperPluginManager $pm) { $helper = new \Zend\View\Helper\Navigation(); $helper->setServiceLocator($pm->getServiceLocator()); $config = $pm->getServiceLocator()->get('config'); if (isset($config['navigation_helpers'])) { $config = new \Zend\ServiceManager\Config($config['navigation_helpers']); $config->configureServiceManager($helper->getPluginManager()); } return $helper; }); }
/** * Construct the search backend manager. * * @param ServiceManager $sm Service manager. * * @return \VuFind\Search\BackendManager */ public static function getSearchBackendManager(ServiceManager $sm) { $config = $sm->get('config'); $smConfig = new \Zend\ServiceManager\Config($config['vufind']['plugin_managers']['search_backend']); $registry = $sm->createScopedServiceManager(); $smConfig->configureServiceManager($registry); $manager = new \VuFind\Search\BackendManager($registry); return $manager; }
<?php namespace Upjv\LicPro; require './vendor/autoload.php'; class LicencePro { static $NbrInstance = 0; function __construct() { self::$NbrInstance++; } function __destruct() { self::$NbrInstance--; } static function getNbrInstance() { return self::$NbrInstance; } } $sm = new \Zend\ServiceManager\ServiceManager(); $smc = new \Zend\ServiceManager\Config(include 'config.php'); $smc->configureServiceManager($sm); //$sm->setInvokableClass('promo','LicencePro'); $sm->setShared('Upjv\\LicPro\\LicencePro', false); $obj = $sm->get('Upjv\\LicPro\\LicencePro'); echo LicencePro::getNbrInstance() . "\n"; $obj1 = $sm->get('Upjv\\LicPro\\LicencePro'); echo LicencePro::getNbrInstance() . "\n";
/** * Support method for getServiceManager() * * @return void */ protected function setupSearchService() { $smConfig = new \Zend\ServiceManager\Config(['factories' => ['Solr' => 'VuFind\\Search\\Factory\\SolrDefaultBackendFactory', 'SolrAuth' => 'VuFind\\Search\\Factory\\SolrAuthBackendFactory']]); $registry = $this->serviceManager->createScopedServiceManager(); $smConfig->configureServiceManager($registry); $bm = new \VuFind\Search\BackendManager($registry); $this->serviceManager->setService('VuFind\\Search\\BackendManager', $bm); $ss = new \VuFindSearch\Service(); $this->serviceManager->setService('VuFind\\Search', $ss); $fh = new \VuFind\Search\Solr\HierarchicalFacetHelper(); $this->serviceManager->setService('VuFind\\HierarchicalFacetHelper', $fh); $events = $ss->getEventManager(); $events->attach('resolve', [$bm, 'onResolve']); }
/** * Get new model instance via service manager * * This method allows temporarily overriding services with manually supplied * instances. This is useful for injecting mock objects which will be passed * to the model's constructor by a factory. A clone of the service manager is * used to avoid interference with other tests. * * @param array $overrideServices Optional associative array (name => instance) with services to override * @return object Model instance */ protected function _getModel(array $overrideServices = array()) { $serviceManager = \Library\Application::getService('ServiceManager'); if (!empty($overrideServices)) { // Clone service manager to keep changes local. $serviceManager = clone $serviceManager; $serviceManager->setAllowOverride(true); // Reset SM config. This will force a new instance of our model to // be created with overriden services. $module = $serviceManager->get('ModuleManager')->getModule('Model'); $config = new \Zend\ServiceManager\Config($module->getConfig()['service_manager']); $config->configureServiceManager($serviceManager); // Override specified services foreach ($overrideServices as $name => $service) { $serviceManager->setService($name, $service); } } $model = $serviceManager->get($this->_getClass()); return clone $model; }
/** * Support method for setUpThemes -- register view helpers. * * @param array $helpers Helper settings * * @return void */ protected function setUpThemeViewHelpers($helpers) { // Grab the helper loader from the view manager: $loader = $this->serviceManager->get('viewmanager')->getHelperManager(); // Register all the helpers: $config = new \Zend\ServiceManager\Config($helpers); $config->configureServiceManager($loader); }