Область применения
Вы можете использовать Slim для решения задач, когда:
1) Вам не подходят полноценные фреймворки Laravel или Symfony
2) Вы хотите создать максимально легкое приложение в максимально быстрый срок
3) Требуется гибкое решение, которое не может предложить другой фреймворк или готовый пакет.
Вы можете использовать Slim в любых других ситуациях, но в 3х перечисленных выше, использование Slim’а будет наиболее обосновано.
Установка
Для установки Slim рекомендуется использовать Composer .
$ composer require slim/slim
Это установит Slim и все необходимые зависимости. Slim требует PHP 7.4 или новее.
Выберите реализацию PSR-7 и создатель ServerRequest
Прежде чем вы сможете приступить к работе с Slim, вам нужно будет выбрать реализацию PSR-7, которая лучше всего подходит для вашего приложения. Несколько примечательных:
- Slim-Psr7 — это реализация Slim Framework PSR-7.
- httpsoft/http-message и httpsoft/http-server-request — это самая быстрая, самая строгая и самая легкая из доступных реализаций.
- Nyholm/psr7 и Nyholm/psr7-server — производительность почти такая же, как у реализации HttpSoft.
- Guzzle/psr7 — это реализация, используемая клиентом Guzzle, с дополнительными функциями для обработки потоков и файлов.
- laminas-diactoros — это реализация Laminas (Zend) PSR-7.
Рекомендую использовать Slim-Psr7 или Guzzle/psr7
Декораторы Slim-Http
Slim-Http — это набор декораторов для любой реализации PSR-7, которую мы рекомендуем использовать с Slim Framework. Чтобы установить библиотеку Slim-Http, просто выполните следующую команду:
composer require slim/http
ServerRequest
и Response
автоматически обнаруживаются и применяются внутренними фабриками. Если вы установили Slim-Http и хотите отключить автоматическое оформление объектов, вы можете использовать следующие инструкции:<?php
use Slim\Factory\AppFactory;
use Slim\Factory\ServerRequestCreatorFactory;
AppFactory::setSlimHttpDecoratorsAutomaticDetection(false);
ServerRequestCreatorFactory::setSlimHttpDecoratorsAutomaticDetection(false);
$app = AppFactory::create();
// ...
Привет, мир, используя AppFactory с автоматическим обнаружением PSR-7
Чтобы автоматическое обнаружение работало и позволяло использовать AppFactory::create()
без App::run()
необходимости создания файла вручную, ServerRequest
вам необходимо установить одну из следующих реализаций:
- Slim-Psr7 – Установить с помощью
composer require slim/psr7
- httpsoft/http-message и httpsoft/http-server-request — установите с помощью:
composer require httpsoft/http-message httpsoft/http-server-request
- Nyholm/psr7 и Nyholm/psr7-server — установка с помощью
composer require nyholm/psr7 nyholm/psr7-server
- Guzzle/psr7 — установить с помощью
composer require guzzlehttp/psr7
- laminas-diactoros – Установить с помощью
composer require laminas/laminas-diactoros
Затем создайте файл public/index.php .
<?php
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Slim\Factory\AppFactory;
require __DIR__ . '/../vendor/autoload.php';
// Instantiate App
$app = AppFactory::create();
// Add error middleware
$app->addErrorMiddleware(true, true, true);
// Add routes
$app->get('/', function (Request $request, Response $response) {
$response->getBody()->write('<a href="/hello/world">Try /hello/world</a>');
return $response;
});
$app->get('/hello/{name}', function (Request $request, Response $response, $args) {
$name = $args['name'];
$response->getBody()->write("Hello, $name");
return $response;
});
$app->run();
Вы можете быстро проверить это, используя встроенный PHP-сервер:
$ php -S localhost:8000 -t public
При переходе по адресу http://localhost:8000/hello/world теперь будет отображаться надпись «Hello, world».
Дополнительную информацию о настройке веб-сервера см. в документации .
Тесты
Чтобы выполнить набор тестов, вам необходимо установить все зависимости разработки.
$ git clone https://github.com/slimphp/Slim
$ composer install
$ composer test