В данной татье описан процесс установки шаблонизатора Twig в Slim Framework version 3.1.0.
Первым делом вам понадобится скачать сам шаблонизатор Twig.
Для этого вам потребуется composer.
Скачать его можно
тут.
Далее необходимо запустить консоль или терминал, выполнить команду для перехода к местонахождению Slim фреймворка.
Это будет выглядеть как то так:
- Для Windows:
cd c:/slim
- Для Linux
cd /var/www/slim
После чего необходимо скачать сам шаблонизатор с помощью следующей команды:
composer require slim/twig-view
После того как компонент шаблонизатора будет скачан, необходимо зарегистрировать компонент как сервис.
Откройте файл index.php, который находится в папке public.
public/index.php
Index.php имеет примерно следующее содержимое:
<?php
if (PHP_SAPI == 'cli-server') {
// To help the built-in PHP dev server, check if the request was actually for
// something which should probably be served as a static file
$file = __DIR__ . $_SERVER['REQUEST_URI'];
if (is_file($file)) {
return false;
}
}
require __DIR__ . '/../vendor/autoload.php';
session_start();
// Instantiate the app
$settings = require __DIR__ . '/../src/settings.php';
$app = new \Slim\App($settings);
// Set up dependencies
require __DIR__ . '/../src/dependencies.php';
// Register middleware
require __DIR__ . '/../src/middleware.php';
// Register routes
require __DIR__ . '/../src/routes.php';
// Run app
$app->run();
Регистрируем компонент как сервис.
Вносим данный код в index.php
// Create app
$app = new \Slim\App();
// Get container
$container = $app->getContainer();
// Register component on container
$container['view'] = function ($container) {
$view = new \Slim\Views\Twig('path/to/templates', [
'cache' => 'path/to/cache'
]);
$view->addExtension(new \Slim\Views\TwigExtension(
$container['router'],
$container['request']->getUri()
));
return $view;
};
В итоге index.php должен иметь следующее содержимое:
<?php
if (PHP_SAPI == 'cli-server') {
// To help the built-in PHP dev server, check if the request was actually for
// something which should probably be served as a static file
$file = __DIR__ . $_SERVER['REQUEST_URI'];
if (is_file($file)) {
return false;
}
}
require __DIR__ . '/../vendor/autoload.php';
session_start();
// Instantiate the app
$settings = require __DIR__ . '/../src/settings.php';
$app = new \Slim\App($settings);
// Fetch DI Container
$container = $app->getContainer();
// Register Twig View helper
$container['view'] = function ($c) {
$view = new \Slim\Views\Twig('path/to/templates', [
'cache' => 'path/to/cache'
]);
// Instantiate and add Slim specific extension
$view->addExtension(new Slim\Views\TwigExtension(
$c['router'],
$c['request']->getUri()
));
return $view;
};
// Set up dependencies
require __DIR__ . '/../src/dependencies.php';
// Register middleware
require __DIR__ . '/../src/middleware.php';
// Register routes
require __DIR__ . '/../src/routes.php';
// Run app
$app->run();
В строках:
$view = new \Slim\Views\Twig('path/to/templates', [
'cache' => 'path/to/cache'
Содержится путь до местоположения шаблонов и путь до кеш файлов. Пути 'path/to/templates' и 'path/to/cache' необходимо изменить на свой (Точное местонахождение файлов шаблона).
Теперь необходимо внести изменения в routes.php.
Откройте файл routes.php, который находится в папке src.
И замените его содержимое на следующий код:
<?php
// Render Twig template in route
$app->get('/[{name}]', function ($request, $response, $args) {
return $this->view->render($response, 'index.html', [
'name' => $args['name']
]);
})
Осталось только создать файл index.html в папке, где будут находиться ваши файлы фаблона и внести в него слудующий код:
<html>
<head>
<meta charset="utf-8"/>
<title>Slim 3</title>
<link href='//fonts.googleapis.com/css?family=Lato:300' rel='stylesheet' type='text/css'>
<style>
body {
margin: 50px 0 0 0;
padding: 0;
width: 100%;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
text-align: center;
color: #aaa;
font-size: 18px;
}
h1 {
color: #719e40;
letter-spacing: -3px;
font-family: 'Lato', sans-serif;
font-size: 100px;
font-weight: 200;
margin-bottom: 0;
}
</style>
</head>
<body>
<h1>Slim</h1>
<div>a microframework for PHP</div>
{% if name is defined %}
{{ name }}
{% else %}
<p>Try <a href="/SlimFramework">/SlimFramework</a>
{% endif %}
</body>
</html>
На этом реализация стандартных возможностей и демо данных Slim Framework версии 3.1.0 завершена.
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.