Пример #1
0
 public function setSetLoaderDelegator()
 {
     $this->setPropertyValue($this->wise, 'collector', $this->collector);
     $resolver = new LoaderResolver();
     $loader = new DelegatingLoader($resolver);
     $this->wise->setLoader($loader);
     $this->assertSame($this->collector, $resolver->getResourceCollector());
     $this->assertSame($this->wise, $resolver->getWise());
 }
 /**
  * {@inheritDoc}
  */
 public function register(Application $app)
 {
     $app['wise'] = $app->share(function () use($app) {
         $wise = new Wise($app['debug']);
         $wise->setLoader($app['wise.loader']);
         $wise->setCollector($app['wise.collector']);
         $wise->setGlobalParameters($app['wise.options']['parameters']);
         $wise->setProcessor($app['wise.processor']);
         if (isset($app['wise.cache_dir'])) {
             $wise->setCacheDir($app['wise.cache_dir']);
         }
         return $wise;
     });
     $app['wise.collector'] = $app->share(function () use($app) {
         return new Resource\ResourceCollector();
     });
     $app['wise.loader'] = $app->share(function () use($app) {
         return new DelegatingLoader($app['wise.loader_resolver']);
     });
     $app['wise.loader_resolver'] = $app->share(function () use($app) {
         return new LoaderResolver($app['wise.loaders']);
     });
     $app['wise.loaders'] = $app->share(function () use($app) {
         $loaders = array(new Loader\IniFileLoader($app['wise.locator']), new Loader\PhpFileLoader($app['wise.locator']));
         if (class_exists('Herrera\\Json\\Json')) {
             $loaders[] = new Loader\JsonFileLoader($app['wise.locator']);
         }
         if (class_exists('DOMDocument')) {
             $loaders[] = new Loader\XmlFileLoader($app['wise.locator']);
         }
         if (class_exists('Symfony\\Component\\Yaml\\Yaml')) {
             $loaders[] = new Loader\YamlFileLoader($app['wise.locator']);
         }
         foreach ($loaders as $loader) {
             if ($loader instanceof SilexAwareInterface) {
                 $loader->setSilex($app);
             }
         }
         return $loaders;
     });
     $app['wise.locator'] = $app->share(function () use($app) {
         return new FileLocator($app['wise.path']);
     });
     $app['wise.options'] = new \ArrayObject(array('config' => array('routes' => 'routes', 'services' => 'services'), 'mode' => $app['debug'] ? 'dev' : 'prod', 'type' => 'json', 'parameters' => array()));
     $app['wise.processor'] = $app->share(function () use($app) {
         return new Processor\DelegatingProcessor($app['wise.processor_resolver']);
     });
     $app['wise.processor_resolver'] = $app->share(function () use($app) {
         return new Processor\ProcessorResolver($app['wise.processors']);
     });
     $app['wise.processors'] = array();
 }