use Pagekit\View\Helper\MarkdownHelper; use Pagekit\View\Helper\MetaHelper; use Pagekit\View\Helper\ScriptHelper; use Pagekit\View\Helper\SectionHelper; use Pagekit\View\Helper\StyleHelper; use Pagekit\View\Helper\TokenHelper; use Pagekit\View\Helper\UrlHelper; use Pagekit\View\Loader\FilesystemLoader; use Pagekit\View\PhpEngine; use Pagekit\View\View; use Symfony\Component\HttpFoundation\Response; return ['name' => 'view', 'main' => function ($app) { $app['view'] = function ($app) { $view = new View(new PrefixEventDispatcher('view.', $app['events'])); $view->addEngine(new PhpEngine(null, isset($app['locator']) ? new FilesystemLoader($app['locator']) : null)); $view->addGlobal('app', $app); $view->addGlobal('view', $view); $view->addHelpers([new DataHelper(), new DeferredHelper($app['events']), new GravatarHelper(), new MapHelper(), new MetaHelper(), new ScriptHelper($app['scripts']), new SectionHelper(), new StyleHelper($app['styles']), new UrlHelper($app['url'])]); if (isset($app['csrf'])) { $view->addHelper(new TokenHelper($app['csrf'])); } if (isset($app['markdown'])) { $view->addHelper(new MarkdownHelper($app['markdown'])); } return $view; }; $app['assets'] = function () { return new AssetFactory(); }; $app['styles'] = function ($app) { return new AssetManager($app['assets']);