PHPのslim3にtwigの設定を追加
前回TOPページのコントローラの追加を行ったので、今回はテンプレートの追加をします。
テンプレートにはtwigを使用します。
composer.jsonを更新してtwigのパッケージをインストールします
$ vi composer.json "require": { "php": ">=5.5.0", "slim/slim": "^3.1", "slim/twig-view": "2.2.0", $ php composer.phar update
rendererの設定にtwig用の項目を設けます。
$ vi src/settings.php // Renderer settings 'renderer' => [ 'template_path' => __DIR__ . '/../templates/', 'twig_settings' => [ 'cache' => __DIR__ . '/../cache', ], ],
コンテナのrendererにはphp-viewの設定がありますが、twigの設定に書き換えます。
$ vi src/dependencies.php $container['renderer'] = function ($c) { $settings = $c->get('settings')['renderer']; $view = new \Slim\Views\Twig($settings['template_path'], $settings['twig_settings']); $basePath = rtrim(str_ireplace('index.php', '', $c['request']->getUri()->getBasePath()), '/'); $view->addExtension(new \Slim\Views\TwigExtension($c['router'], $basePath)); return $view; };
コントローラでtwigのテンプレートを使用するように書き換えます。
public function index($request, $response, $args){ return $this->container['renderer']->render($response, 'top/index.twig', ['message' => '<test>']); }
twigテンプレートを追加します
$ vi templates/top/index.twig {{ message }}
これでtwig用の設定の追加は完了です