/** * Adds Plugin's services to the existing Container * * @param Container $container App's Services Container * * @return void */ public function loadServices(Container $container) { // service $defService = new ClassDefinition('Nitronet\\Fwk\\Comments\\CommentsService', array('@' . $this->cfg('dbService', 'db'), array('threadsTable' => $this->cfg('threadsTable', 'comments_threads'), 'threadEntity' => $this->cfg('threadEntity', 'Nitronet\\Fwk\\Comments\\Model\\Thread'), 'commentsTable' => $this->cfg('commentsTable', 'comments'), 'commentEntity' => $this->cfg('commentEntity', 'Nitronet\\Fwk\\Comments\\Model\\Comment'), 'autoThread' => $this->cfg('autoThread', false), 'autoApprove' => $this->cfg('autoApprove', true), 'dateFormat' => $this->cfg('dateFormat', 'Y-m-d H:i:s')))); $container->set($this->cfg('serviceName', 'comments'), $defService, true); $container->setProperty('commentsServiceName', $this->cfg('serviceName', 'comments')); $container->setProperty('sessionServiceName', $this->cfg('sessionService', 'session')); $container->setProperty('sessionServiceName', $this->cfg('rendererService', 'formRenderer')); $container->setProperty('commentForm', $this->cfg('commentForm', 'Nitronet\\Fwk\\Comments\\Forms\\AnonymousCommentForm')); }
public function testProperties() { $this->object->setProperty('testPropOne', 'one'); $this->object->setProperty('testPropTwo', 'two'); $this->object->setProperty('testPhrase', ':testPropOne+:testPropOne=:testPropTwo'); $this->assertEquals('one+one=two', $this->object->getProperty('testPhrase')); }
public function loadServices(Container $container) { // the ViewHelper $defViewHelper = new ClassDefinition('Nitronet\\Fwk\\Assetic\\AssetViewHelper', array($this->cfg('serviceName', 'assetic'), 'url', $this->cfg('debug', false), $this->cfg('action'))); $container->set('assetic.ViewHelper', $defViewHelper, true); // filter manager $defFilterManager = new ClassDefinition('Assetic\\FilterManager'); $container->set('assetic.FilterManager', $defFilterManager, true); // cssrewrite filter if ($this->cfg('cssrewrite', true) === true) { $defCssRewriteFilter = new ClassDefinition('Nitronet\\Fwk\\Assetic\\Filters\\CssRewriteFilter', array('@assetic.ViewHelper')); $container->set('assetic.CssRewriteFilter', $defCssRewriteFilter, true); $defFilterManager->addMethodCall('set', array('cssrewrite', '@assetic.CssRewriteFilter')); } // asset factory $defAssetFactory = new ClassDefinition('Assetic\\Factory\\AssetFactory', array($this->cfg('directory', null), $this->cfg('debug', false))); $defAssetFactory->addMethodCall('setFilterManager', array('@assetic.FilterManager')); $container->set('assetic.AssetFactory', $defAssetFactory, true); // service $defService = new ClassDefinition('Nitronet\\Fwk\\Assetic\\AssetsService', array('@assetic.AssetFactory')); $defService->addMethodCall('addShortcuts', array($this->shortcuts)); $container->set($this->cfg('serviceName', 'assetic'), $defService, true); // caching if ($this->cfg('cache', false) === true) { $defFilesystemCache = new ClassDefinition('Assetic\\Cache\\FilesystemCache', array($this->cfg('cacheDir', sys_get_temp_dir()))); $container->set('assetic.FilesystemCache', $defFilesystemCache, true); $defCacheBustingWorker = new ClassDefinition('Assetic\\Factory\\Worker\\CacheBustingWorker', array($this->cfg('cacheStrategy', 'content'))); $container->set('assetic.CacheBustingWorker', $defCacheBustingWorker, true); $defAssetFactory->addMethodCall('addWorker', array('@assetic.CacheBustingWorker')); $defService->addArgument('@assetic.FilesystemCache'); $defService->addArgument($this->cfg('cacheDir', sys_get_temp_dir())); } $container->setProperty('asseticServiceName', $this->cfg('serviceName', 'assetic')); }
protected function getContainer() { $container = new Container(); $container->set('testRef', 'testReferenceOk'); $container->setProperty('propTest', 'testPropertyOk'); return $container; }
/** * Registers Xml definitions to the provided Container. * If no Container is provided, a new one will be created. * * @param string|XmlFile $file Path to Xml (or XmlFile instance) * @param null|Container $container Container where definitions are added * * @return Container */ public function execute($file, Container $container = null) { if (!$file instanceof XmlFile) { $file = new XmlFile($file); } if (null === $container) { $container = new Container(); } $results = $this->map->execute($file); $container->setProperty('packageDir', dirname($file->getRealPath())); $this->applyIniFiles($results['ini'], $container, $file); $this->applyDefinitions($results['definitions'], $container); $this->applyArrayDefinitions($results['arrayDefs'], $container); $this->applyClassDefinitions($results['classDefs'], $container); $this->applyListeners($results['listeners'], $container); return $container; }