コード例 #1
0
 /**
  * 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'));
 }
コード例 #2
0
ファイル: ContainerTest.php プロジェクト: fwk/di
 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'));
 }
コード例 #3
0
 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'));
 }
コード例 #4
0
ファイル: ArrayDefinitionTest.php プロジェクト: fwk/di
 protected function getContainer()
 {
     $container = new Container();
     $container->set('testRef', 'testReferenceOk');
     $container->setProperty('propTest', 'testPropertyOk');
     return $container;
 }
コード例 #5
0
ファイル: ContainerBuilder.php プロジェクト: fwk/di
 /**
  * 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;
 }