slim php framework на русском

Документация

Эта документация предназначена для Slim 4. Ищете документацию по Slim 3?

Добро пожаловать

В чем смысл?

По своей сути, Slim просто диспетчер, который получает HTTP-запрос, вызывает соответствующий обработчик и возвращает HTTP-ответ. Вот и все.

Вам не всегда нужен кухонный комбайн вроде Symfony или Laravel. Это несомненно отличные инструменты, но они сликом переполнены излишним функционалом. Slim же, наоборот, предоставляет минимальный набор нужных инструментов, и не более того.

Как это работает?

Во-первых, вам нужен веб-сервер, такой как Nginx или Apache. Вы должны настроить свой веб-сервер так, чтобы он отправлял все соответствующие запросы в один файл PHP «фронт-контроллер». Вы создаете экземпляр приложения Slim и запускаете свое его в этом файле.

Приложение Slim содержит маршруты, отвечающие определенным HTTP-запросам. Каждый маршрут вызывает обработчик и возвращает HTTP-ответ. Чтобы начать работу, сначала создайте экземпляр приложения и настройте приложение Slim. Затем вы определяете маршруты своего приложения. Наконец, вы запускаете приложение. Всё просто. Вот пример приложения:

Запрос и ответ

Когда вы создаете приложение Slim, вы часто работаете непосредственно с объектами запроса и ответа. Эти объекты представляют собой фактический HTTP-запрос, полученный веб-сервером, и возможный HTTP-ответ, возвращаемый клиенту.

Каждому маршруту Slim-приложения присваиваются текущие объекты запроса и ответа в качестве аргументов его обработчика. Эти объекты реализуют популярные интерфейсы PSR-7. Маршрут Slim-приложения может проверять или манипулировать этими объектами по мере необходимости. В конечном счете, каждый маршрут приложения Slim ДОЛЖЕН вернуть объект PSR-7 совместимого ответа.

Принесите свои собственные компоненты

Slim также хорошо работает с другими компонентами PHP. Вы можете зарегистрировать дополнительные сторонние компоненты, такие как Slim-Csrf, Slim-HttpCache или Slim-Flash, которые основываются на функциональных возможностях Slim по умолчанию. Также легко интегрировать сторонние компоненты, найденные в Packagist.

Как читать эту документацию

Новичкам в Slim я рекомендую читать эту документацию от начала до конца. Если вы уже знакомы с фреймворком, то можете сразу перейти в соответствующий раздел.

Прежде чем вникать в конкретные темы (такие, как обработка запросов и ответов, маршрутизация и обработка ошибок), данная документация объясняет концепцию и архитектуру Slim.

Лицензия документации

Источник

Документация

Эта документация предназначена для Slim 3. Документацию по Slim 2 можно найти на slimframework.com.

Добро пожаловать

В чем смысл?

Как это работает?

Во-первых, вам нужен веб-сервер, такой как Nginx или Apache. Вы должны настроить свой веб-сервер так, чтобы он отправлял все соответствующие запросы в один файл PHP «front-controller». Вы создаете экземпляр и запускаете свое приложение Slim в этом файле PHP.

Приложение Slim содержит маршруты, отвечающие определенным HTTP-запросам. Каждый маршрут вызывает обратный вызов и возвращает HTTP-ответ. Чтобы начать работу, сначала создайте экземпляр и настройте приложение Slim. Затем вы определяете маршруты своего приложения. Наконец, вы запускаете приложение Slim. Это так просто. Вот пример приложения:

Запрос и ответ

Когда вы создаете Slim-приложение, вы часто работаете непосредственно с объектами Request and Response. Эти объекты представляют собой фактический HTTP-запрос, полученный веб-сервером, и возможный HTTP-ответ, возвращаемый клиенту.

Каждому маршруту Slim-приложения присваиваются текущие объекты Request and Response в качестве аргументов его подпрограммы обратного вызова. Эти объекты реализуют популярные интерфейсы PSR 7. Slim route приложения может проверять или манипулировать этими объектами по мере необходимости. В конечном счете, каждый маршрут приложения Slim MUST возвращать ответ PSR 7 объекта.

Принесите свои собственные компоненты

Slim также хорошо сочетается с другими компонентами PHP. Вы можете зарегистрировать дополнительные сторонние компоненты, такие как Slim-Csrf, Slim-HttpCache, или Slim-Flash которые основываются на функциональных возможностях Slim по умолчанию. Также легко интегрировать сторонние компоненты, найденные в Packagist.

Как читать эту документацию

Если вы новичок в Slim, я рекомендую вам прочитать эту документацию от начала до конца. Если вы уже знакомы с Slim, вы можете перейти прямо в соответствующий раздел.

Эта документация начинается с объяснения концепций и архитектуры Slim, прежде чем вникать в конкретные темы, такие как обработка запросов и ответов, маршрутизация и обработка ошибок.

Источник

Slim php framework на русском

slim php framework на русском. Смотреть фото slim php framework на русском. Смотреть картинку slim php framework на русском. Картинка про slim php framework на русском. Фото slim php framework на русском

Документация Slim 4.

Данная документация относится к 4 версии фреймворка Slim. Если Вам необходима документация к 3 версии ищите ее на официальном сайте Slim 3 Docs.

Добро пожаловать.

Slim — это микро-фреймворк PHP, с помощью которого можно быстро писать простые, но мощные веб-приложения и API. По своей сути Slim — это диспетчер, который получает HTTP-запрос, вызывает соответствующую callback-функцию, и возвращает HTTP-ответ. Это все!

В чем суть?

Slim — это идеальный инструмент для создания API, которые получают, видоизменяют или отображают данные (CRUD-приложение). Slim также является отличным инструментом для прототипирования. При желании можно даже создать полнофункциональное веб-приложение с пользовательским интерфейсом. Одной из важных особенностей данного фреймворка является то, что он очень быстрый и имеет очень мало кода. Разработчик с опытом сможет разобраться с исходным кодом фреймворка всего за один день.

Для множества проектов не всегда нужны монстрообразные фреймворки типа Laravel и Symfony. Бесспорно это отличные инструменты, но часто их функционал бывает избыточным. Slim же предлагает только минимальный набор инструментов, которые делают только то, что нужно, и ничего лишнего.

Как это работает?

Во-первых, Вам понадобится веб-сервер, Nginx или Apache (на данный момент устарел). Необходимо настроить веб-сервер таким образом, чтобы он отправлял все соответствующие запросы в один php-файл «front-contrller». Необходимо инициализировать и запустить Ваше Slim-приложение в этом файле.

Slim-приложение содержит обработчики маршрутов, которые отвечают на определенные HTTP-запросы. Каждый обработчик вызывает callback-функцию и возвращает HTTP-ответ. Для начала необходимо создать экземпляр Slim-приложения и сконфигурировать его. Далее Вы определяете маршруты Slim-приложения и запускаете его. Ниже простой пример данного приложения (файл public/index.php):

Запросы и ответы.

Когда Вы создаете Slim-приложение, Вы часто работаете непосредственно с объектами запроса и ответа. Эти объекты представляют собой фактический HTTP-запрос, полученный веб-сервером, и возможный HTTP-ответ, возвращенный клиенту.

Каждый маршрут Slim-приложения получает текущие объекты запроса и ответа в качестве аргументов для своей callback-функции. Данные объекты реализуют популярный интерфейс PSR-7. Маршрутизатор манипулирует данными объектами по мере необходимости. В конечном счете, каждый маршрутизатор должен возвращать объект ответа соответствующего формату PSR-7.

Подключение собственных компонентов.

Slim спроектирован так, что он отлично совмещается с различными PHP-компонентами, которые позволяют расширять функционал микро фреймворка. Вы можете зарегистрировать первоочередные компоненты такие как, Slim-Csrf, Slim-HttpCache, или Slim-Flash, которые по умолчанию основанны на функциональности Slim. Кроме того, Вы легко можете интегрировать сторонние компоненты, найденные на Packagist.

Источник

Руководство по обновлению

Если Вы обновляете свое приложение с 3 версии на 4, вы должны быть в курсе следующих значительных изменений.

Требование к версии PHP

Slim 4 требует PHP 7.2 и выше.

Изменения, ломающие обратную совместимость в конструкторе Slim\App constructor

Настройки приложения хранились в контейнере. Теперь они вынесены отдельно.

Удаленные настройки приложения

Изменения конейнера

Изменения в обработке базового пути

До версии 3, Slim извлекал базовый путь из директории, в которой был создан объект приложения. Теперь базовый путь должен быть вручную объявлен, если приложение выполняется не из корня домена:

Изменения компонента маршрутизации

Это значит, что группы маршрутов тоже изменили свои сигнатуры:

Новый подход Middleware

В Slim 4 мы хотели предоставить разработчикам больше гибкости и вынесли некоторые функциональные возможности в middleware. Это дает вам возможность использовать собственные реализации основных компонентов.

Очередность выполнения Middleware

Очередность выполнения middleware не изменилась с версии 3 ( Последний вошёл, первый вышел (LIFO) ).

Новая фабрика App

Новый Middleware маршрутизации

Новый middleware обработки ошибок

Обработка ошибок так же реализована в качестве middleware. Подробнее см. в Pull Request #2398.

Новые Not Found- и Not Allowed обработчики

Обработчик ошибки 404 Not Found и Обработчик ошибки 405 Not Allowed из версии 3 могут быть перенесены как показано ниже:

Новый диспетчер маршрутизации и результаты маршутизатора

Новый middleware переопределения метода

Новый middleware размера ответа

Новый middleware буферизации вывода

Источник

Микрофреймворк slim

Новое в Slim 4

Основные нововведения по сравнению с версией 3:

Как теперь создать приложение?

В третьей версии создание приложения выглядело примерно так:

Теперь конструктор приложения принимает следующие параметры:

ПараметрТипОбязательныйОписание
$responseFactoryPsr\Http\Message\ResponseFactoryInterfaceдаPSR-17 совместимая фабрика серверного http-запроса
$container\Psr\Container\ContainerInterfaceнетКонтейнер зависимостей
$callableResolver\Slim\Interfaces\CallableResolverInterfaceнетОбработчик вызываемых методов
$routeCollector\Slim\Interfaces\RouteCollectorInterfaceнетРоутер
$routeResolver\Slim\Interfaces\RouteResolverInterfaceнетОбработчик результатов роутинга

Верните мне 404 ошибку!

Middleware

Промежуточное ПО теперь должно быть реализацией PSR-15. В качестве исключения, можно передавать функции, но сигнатура должна соответствовать методу process() интерфейса \Psr\Http\Server\MiddlewareInterface

Как жить без настроек?

Без настроек жить можно. Предоставленные инструменты нам в этом помогут.

httpVersion и responseChunkSize

Настройка httpVersion отвечала за вывод версии протокола в ответе.
Настройка responseChunkSize определяла размер каждого чанка, читаемого из тела ответа при отправке в браузер.

Сейчас эти функции можно возложить на эмиттер ответа.

Подключаем к приложению

outputBuffering

Данная настройка позволяла включать/выключать буфферизацию вывода. Значения настройки:

determineRouteBeforeAppMiddleware

Эта настройка позволяла получить текущий маршрут из объекта запроса в промежуточном ПО

На замену предоставляется \Slim\Middleware\RoutingMiddleware

displayErrorDetails

Настройка позволяла выводить подробности ошибок. При отладке это неплохо упрощает жизнь.

addContentLengthHeader

Данная настройка позволяла включать/отключать автодобавление заголовка Content-Length со значением объема данных в теле ответа

Заменяет опцию промежуточное ПО \Slim\Middleware\ContentLengthMiddleware

routerCacheFile

Теперь вы можете напрямую установить файл кеша роутера

Создание приложения на Slim-4

Чтобы более подробно рассмотреть фреймворк, напишем небольшое приложение.

Приложение будет иметь следующие роуты:

Логика будет в контроллерах, рендерить страницу будем через шаблонизатор Twig
Бонусом добавим консольное приложение на базе компонента Symfony Console с командой, отображающей список роутов

Шаг 0. Установка зависимостей

В качестве контенера зависимостей я выбрал ultra-lite/container, как легкий, лаконичный и соответствующий стандарту.
PSR-7 и PSR-17 разработчики Slim предоставляют в одном пакете slim/psr7. Им и воспользуемся

Предполагается, что пакетный менеджер Composer уже установлен.

Создаём папку под проект (в качестве примера будет использоваться /path/to/project ) и переходим в неё.

Добавим в проект файл composer.json со следующим содержимым:

и выполним команду

Теперь у нас есть все необходимые пакеты и настроен автозагрузчик классов.

Шаг 1. Каркас приложения

Ах да, ещё неплохо исключить конфиги окружения из репозитория. Ведь там могут быть явки/пароли. Кэш тоже исключим.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *