public function dispatch($request, $response, $args) { $event = $this->eventService->getLatestEvent(); $filter = $this->contentService->getTwigFilter(); $this->view->getEnvironment()->addFilter($filter); $this->view->render($response, 'home.twig', ['event' => $event]); return $response; }
public function dispatch($request, $response, $args) { $event = $this->eventService->getLatestEvent(); $filter = $this->contentService->getTwigFilter(); $this->view->getEnvironment()->addFilter($filter); $previousEvents = $this->eventService->getPastEvents(); $resWithETag = $this->cache->withETag($response, $event->getMeetupID()); $this->view->render($response, 'home.twig', ['event' => $event, 'previousEvents' => $previousEvents]); return $resWithETag; }
public function register(Container $c) { $c['view'] = function ($c) { $view = new Twig(__DIR__ . '/../../templates/view', ['cache' => __DIR__ . '/../../var/cache', 'autoreload' => true, 'debug' => true]); $view->getEnvironment()->addGlobal('flash', $c['flash']); $view->getEnvironment()->addGlobal('session', $_SESSION); $view->getEnvironment()->addGlobal('current_uri', $c['request']->getUri()->getPath()); $view->addExtension(new TwigExtension($c['router'], $c['request']->getUri())); $view->addExtension(new Twig_Extension_Debug()); return $view; }; }
<?php use Slim\App; use Slim\Views\Twig; require '../vendor/autoload.php'; $app = new App(); $view = new Twig('../resources/views'); $env = $view->getEnvironment(); $env->addGlobal('year', date('Y')); $container = $app->getContainer(); $container->register($view); // Routes $app->get('/', function ($request, $response, $args) { return $this->view->render($response, 'index.html.twig', ['page_title' => 'Project Mercury']); })->setName('index'); $app->run();
use Slim\Views\Twig; use Slim\Flash\Messages; use Slim\Views\TwigExtension; // Get app container $container = $app->getContainer(); // Register flash message on container $container['flash'] = function () { return new Messages(); }; // Register twig view on container $container['view'] = function ($container) { $settings = $container->get('settings')['renderer']; $view = new Twig($settings['template_path'], ['cache' => $settings['cache_path']]); $view->addExtension(new TwigExtension($container['router'], $container['request']->getUri())); $theme = $container->get('settings')['theme']['name']; $view->getEnvironment()->addGlobal('theme', $theme); if ($_SERVER['SERVER_PORT'] == '443') { $assetPath = 'https://' . $_SERVER['HTTP_HOST']; } else { $assetPath = 'http://' . $_SERVER['HTTP_HOST']; } $view->getEnvironment()->addGlobal('asset_path', $assetPath); if ($container['flash']->getMessages()) { $flash = ['message' => $container['flash']->getMessages()['message'][0], 'alert_type' => $container['flash']->getMessages()['alert_type'][0]]; $view->getEnvironment()->addGlobal('flash', $flash); } return $view; }; // Register controller on container $container[Controller::class] = function ($container) { return new Controller($container);
<?php use Slim\Views\TwigExtension; use Slim\Views\Twig; use EchaleGas\Twig\Extension\ZendFormExtension; use Zend\View\Renderer\PhpRenderer; use Zend\Form\View\HelperConfig; use Zend\View\HelperPluginManager; use Psr\Log\LogLevel; use Monolog\Handler\StreamHandler; use Monolog\Logger; $app->container->singleton('twig', function () { $viewTig = new Twig(); $viewTig->parserOptions = ['charset' => 'utf-8', 'cache' => realpath('views/cache'), 'auto_reload' => true, 'strict_variables' => false, 'autoescape' => true]; $viewTig->twigTemplateDirs = [realpath('views')]; $viewTig->parserExtensions = [new TwigExtension()]; $renderer = new PhpRenderer(); $renderer->setHelperPluginManager(new HelperPluginManager(new HelperConfig())); $zendFormHelper = new ZendFormExtension($viewTig->getEnvironment(), $renderer); $viewTig->getEnvironment()->registerUndefinedFunctionCallback($zendFormHelper); return $viewTig; }); $app->container->singleton('log', function () { $logger = new Logger('echale-gas-app'); $logger->pushHandler(new StreamHandler('logs/app.log', LogLevel::DEBUG)); return $logger; }); $app->view($app->twig);