/** * Add the ability to call {{ asset() }} within Twig templates * * @param Aurex $aurex */ protected function addAssetFunction(Aurex $aurex) { $aurex['twig'] = $aurex->extend('twig', function ($twig, $aurex) { /** @var \Twig_Environment $twig */ $twig->addFunction(new \Twig_SimpleFunction('asset', function ($asset) use($aurex) { /** @var RequestStack $requestStack */ $requestStack = $aurex['request_stack']; return sprintf('%s/assets/%s', $requestStack->getCurrentRequest()->getBasePath(), ltrim($asset, '/')); })); return $twig; }); }
/** * {@inheritDoc} */ public function integrate(Aurex $aurex) { $aurex->register(new FormServiceProvider()); $aurex->register(new SessionServiceProvider()); $aurex->register(new TranslationServiceProvider(), ['locale' => 'en']); $aurex['form.extensions'] = $aurex->extend('form.extensions', function ($extensions, $app) { $managerRegistry = new FormManagerRegistry(null, [], ['default'], null, null, '\\Doctrine\\ORM\\Proxy\\Proxy'); $managerRegistry->setContainer($app); unset($extensions); return [new DoctrineOrmExtension($managerRegistry)]; }); $aurex->getInjector()->share($aurex['form.factory']); }
/** * {@inheritDoc} */ public function integrate(Aurex $aurex) { $this->aurex = $aurex; $injector = $aurex->getInjector(); $config = $aurex->getConfiguration(); /** Alias any interfaces to concrete implementations **/ $this->aliasObjects(); /** Delegate any object creations to closures or factories **/ $this->delegateObjects(); /** Share any non-silex objects **/ $this->shareObjects(); /** Handler for any injection definition sharing for objects that only exist after application boot **/ $handler = new DelayedInjectionHandler($aurex, $injector); /** Have Auryn instantiate our controllers and run the methods **/ $aurex['resolver'] = $aurex->extend('resolver', function ($resolver, $app) use($injector, $config, $handler) { return new AurynControllerResolver($resolver, $injector, $app, $handler, $config); }); }