Использование Slim PHP Framework
В этой статье мы обсудим, что такое микрофреймворк Slim Framework и где он может быть полезен.
Slim - это PHP микрофреймворк, предназначенный для быстрого написания простых, но в тоже время мощных web приложений и API. В своей основе фреймворк Slim - это диспетчер, который получает HTTP запрос, вызывает назначенную данному запросу callback-функцию и возвращает HTTP ответ. Вот и все.
Для чего он нужен?
Slim Framework - это идеальный инструмент для создания API, которые используют, переиспользуют какие-либо данные или же предоставляют к ним доступ. Также это прекрасный инструмент для быстрого прототипирования, когда задумка требует скорейшей реализации. Кроме того, с помощью микрофреймворка Slim можно создавать полнофункциональные web-приложения с пользовательским интерфейсом. Он очень быстрый, имеет небольшую кодовую базу - только то, что нужно и больше ничего.
Как запустить?
Для начала необходимо иметь установленный web-сервер. Web-сервер необходимо настроить так, чтобы все запросы он посылал к фронт-контроллеру, т.е. к index.php. В фронт-контроллере создается, настраивается и запускается приложение. Приложение содержит маршруты (URL-адреса) , которые соответствуют конкретным HTTP запросам. Затем каждый маршрут запускает соответствующий обработчик, представляющий функцию обратного вызова, и возвращает HTTP ответ.
Запрос и ответ
При создании PHP Slim приложения, почти всегда приходиться взаимодействовать с объектами Request и Response. Эти объекты инкапсулируют HTTP запросы получаемые сервером и ответы возвращаемые им в сущности, с которыми удобно работать посредством объектно-ориентированного стиля. У каждого маршрута есть собственная callback-функция которая выполняется, если запрошенный адрес соответствует маршруту. В каждую callback-функцию предаются объекты Response и Request. Они реализуют популярный стандарт PSR 7. После получение запроса функция ДОЛЖНА вернуть объект Response, соответствующий этому стандарту.
Работа с внешними компонентами
PHP микрофреймворк Slim специально спроектирован таким образом, чтобы максимально упростить взаимодействие со сторонними компонентами. С помощью компонентов сторонних разработчиков можно расширить функционал приложения. Эти компоненты могут быть найдены, в частности, в широко известном репозитории PHP пакетов - Packagist.
Установка
Для работы с Slim Framework необходимо иметь PHP 5.5 и новее, а также нужно иметь настроенные правила конфигурации сервера, для перенаправления всех запросов на index.php. Установку будем выполнять с помощью пакетного менеджера Composer. Если вы не знаете, что такое пакетный менеджер Composer, то на сайте есть статья о нем. Далее необходимо создать папку, например, MyProject.
Открываем консоль команд и вводим следующее:
$ cd путь-к-папке/MyProject
$ composer require slim/slim "^3.0"
Последняя команда установит сам фреймворк и все его зависимости. После этого в папке MyProject необходимо создать папку public, которая будет являться корневой директорией нашего сайта доступной извне, там же надо создать два файла: index.php и .htaccess, последний файл конфигурации Apache нужен для перенаправления всех запросов к index.php.
Содержимое файла .htaccess:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]
А вот непосредственно код нашего приложения:
<?php
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;
require __DIR__ . '/../vendor/autload.php';
// создаем и настраиваем приложение
$config = ['settings' => [
'addContentLengthHeader' => false,
]];
// передаем массив настроек в конструктор класса Slim\App
$app = new \Slim\App($config);
// определяем маршруты
// главная страница
$app -> get('/',function($request, $response)) {
return $response -> write('Добро пожаловать на мою страницу');
});
// страница с адресом localhost:9090/hello/Alex
$app -> get('/hello/{name}', function ($request, $response, $args) {
return $response->write("Hello " . $args['name']);
});
// Запускаем приложение
$app->run();
?>
Поясню код выше. С помощью директив use мы импортируем необходимые нам классы из стандарта PSR 7 о котором я говорил выше. Затем включаем в наш index.php файл автозагрузки классов. Такой порядок может показаться несколько необычным, однако он легален с точки зрения языка. После этого создаем массив строк представляющих собой настройки нашего web-приложения. И, наконец, добавляем маршруты с помощью метода get класса Slim\App. Запускаем встроенный в PHP web-сервер с помощью следующих команд:
$ php -S localhost:9090 -t public public/index.php
Открываем браузер по адресу localhost:9090 и смотрим.
Таким образом сегодня мы с Вами познакомились с PHP микрофреймворком Slim Framework. Узнали в каких случаях его можно и стоит использовать. Создали тестовое приложение. Спасибо за внимание.
Кстати, пример создания сайта на основе фреймворка Yii можно посмотреть в моем курсе https://srs.myrusakov.ru/yii
-
- Михаил Русаков
Комментарии (1):
Две ошибки в примере. Тут неправильно написано 'autoload' require __DIR__ . '/../vendor/autload.php'; Тут лишняя скобка $app -> get('/',function($request, $response) ___)___ {
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.