$ composer require troublete/monty
<?php
require_once ' path/to/vendor/autoload.php ' ;
$ application = new Monty Application ();
$ application -> get (
' /request[/{someId}] ' ,
function ( Monty Request $ req , Monty Response $ res , $ someId ) {
// do some awesome stuff
return new Symfony Component HttpFoundation JsonResponse ([]);
}
); Расположение маршрута основано на созданном пакете Fastroute Be @nikic, поэтому по большей части следует определять маршруты, указанные Fastroute. Соответствие маршрута выполняется с помощью PCRE с DeLimiter, установленным на @ , поэтому имейте в виду при настройке, определенных пользовательными параметрами повторной эксплуатации, с помощью @ . Определения маршрута разрешают переменные части в конце определения, отмеченного [] . Поскольку это возможно, сопоставление попробует несколько регулярных выражений в порядке сложности потомков и вернется на первом матче с шаблоном.
Действительная маршрутизация
/search/{searchId} => routing with parameter
/search/{searchId:d+} => routing with parameter with defined regex
/search[/{searchId}] => routing with optional parameter
/search/index[es] => routing with optional part
Неверная маршрутизация
/search/index[es]/{searchId} => optional chunk in the middle
Определения обработки будут обработаны в порядке регистрации, как только он совпадает с полученным запросом, который он отправит, возвращает и, следовательно, закроет процесс.
Кроме того, Монти предназначен для того, чтобы быть ориентированным на запрос и ответа, следуя догме, что один запрос на заявку будет обработан один раз, поэтому все необходимое в течение жизненного цикла включено (или должно быть добавлено) в объект запроса или ответа.
Обработчики по определению представляют собой массив callable 'S и будут выполнены синхронно для соответствия определения. Middlewares, зарегистрированные для запуска до или после, интегрированы в этот «стек вызовов».
Если объект ответа возвращается в обработчике, он интерпретируется как ответ процесса и не может быть сброшен (но модифицирован).
Приложение является основным компонентом Монти. Он будет обрабатывать регистрацию обработчиков маршрута, среднихворных и дополнительных настроек запроса и ответа. Как правило, он содержит четыре различных вида использования. Доступ к объекту запроса или ответа текущего процесса запроса, регистрация обработчиков маршрутов и регистрация MiddleWares, которые будут выполнены во время жизненного цикла.
В дополнение к методам использования, он также содержит интерфейс методов псевдонима, чтобы сделать код вашей записи намного более понятным и гладким.
Этот метод регистрирует новые обработчики запросов для конкретного маршрута в отношении сбора методов запроса, на котором следует отправлять.
| Аргумент | Тип | Описание |
|---|---|---|
| $ Методы | нить[] | Сбор методов запроса в верхнем регистре. |
| $ маршрут | нить | Маршрут, на который зарегистрированы обработчики. |
| ... $ Хэндлеры | Callible [] | Коллекция обработчиков, которые будут выполнены. |
// ...
$ app -> handle (
[ ' GET ' ],
' /index ' ,
function ( $ req , $ res ) { /*...*/ },
function ( $ req , $ res ) { /*...*/ },
function ( $ req , $ res ) { /*...*/ }
// ...
);
// ... | Метод | Описание |
|---|---|
| Все ($ route, ... $ handlers) | Метод псевдонима, который будет реагировать на все методы запроса |
| получить ($ route, ... $ handlers) | Метод псевдонима, который будет реагировать на получение запросов |
| Post ($ route, ... $ Handlers) | Метод псевдонимы, который будет реагировать на запросы публикации |
| голова ($ route, ... $ Handlers) | Метод псевдонима, который будет реагировать на запросы головы |
| опции ($ route, ... $ handlers) | Метод псевдонимы, который будет реагировать на запросы параметров |
| патч ($ route, ... $ Handlers) | Метод псевдонимы, который будет реагировать на запросы на патч |
| положить ($ route, ... $ Handlers) | Метод псевдонимы, который будет реагировать на запросы в соответствии с |
| Удалить ($ route, ... $ Handlers) | Метод псевдонима, который будет реагировать на удаление запросов |
Этот метод регистрирует дополнительные обработчики, которые будут выполняться без учета запрашивающего метода.
| Аргумент | Тип | Описание |
|---|---|---|
| $ размещение | целое число | Положение жизненного цикла запроса (Application :: Prepend - до, Application :: Append - After), когда обработчики должны быть выполнены. |
| ... $ Хэндлеры | Callible [] | Коллекция обработчиков, которые будут выполнены. |
// ...
$ app -> middleware (
Monty Application:: PREPEND ,
function ( $ req , $ res ) { /*...*/ },
function ( $ req , $ res ) { /*...*/ },
function ( $ req , $ res ) { /*...*/ }
// ...
);
// ... | Метод | Описание |
|---|---|
| До (... $ обработчики) | Метод псевдонимы, который добавит обработчиков запроса, выполненных перед обработкой фактической обработки запросов |
| После (... $ обработчики) | Метод псевдонимы, который добавит обработчиков запросов, выполненных после фактической обработки запросов |
Этот метод получает текущий объект запроса.
Этот метод получает текущий объект ответа.
Объект запроса является центральной частью процесса. Он содержит возможность добавлять свойства и услуги, необходимые во время запроса. С этим обработкой объект запроса остается небольшим, и только необходимые зависимости зарегистрированы при необходимости.
Метод для извлечения запроса IP.
Метод для извлечения запрашиваемого значения заголовка типа контента.
Метод для извлечения параметров $ _files.
Этот метод может использоваться для извлечения свойства или услуги, установленного в запросе.
| Аргумент | Тип | Описание |
|---|---|---|
| ... $ параметры | смешанный | Сбор параметров прошел долгий метод сеттера. |
// ...
$ request -> get ( ' logger ' , new SomeDefault ());
$ request -> get ( ' property ' , ' some default value ' );
// ... Метод для извлечения необработанного запроса, встроенного в объект monty запроса.
Метод для извлечения HTTP -хоста, включая протокол.
Метод для проверки, является ли метод запроса конкретным значением.
| Аргумент | Тип | Описание |
|---|---|---|
| $ Метод | нить | Метод запроса на проверку. |
Метод для проверки, если отправленный запрос защищен (https/ssl).
Метод для извлечения пути запроса.
Метод для получения возврата значения предыдущего обработчика в стеке.
Метод для извлечения параметров $ _get.
Метод для извлечения метода запроса.
Метод для извлечения параметров $ _post.
Метод для извлечения значений параметров маршрута соответствует экземпляру обработчика маршрута.
Этот метод можно использовать для добавления экземпляра или свойства класса или свойства, к которому можно получить доступ вдоль стека вызовов. Обычно метод принимает как минимум два параметра, сначала идентификатор свойства/службы как строки, а во -вторых, скалярное значение или значение объекта.
Массивы не разрешаются устанавливать в качестве свойств запроса, чтобы избежать грязного кода и заполнения ресурсов.
| Аргумент | Тип | Описание |
|---|---|---|
| ... $ параметры | смешанный | Сбор параметров прошел долгий метод сеттера. |
// ...
$ request -> set ( ' logger ' , new SomeLogger ()); // valid
$ request -> set ( ' property ' , ' some value ' ); // valid
$ request -> set ( ' not_possible ' , []); // invalid
// ... Метод для установки предыдущего возврата обработчика.
| Аргумент | Тип | Описание |
|---|---|---|
| $ value | смешанный | Возвращаемое значение предыдущего обработчика. |
Метод для обновления параметров маршрута, установленных на запрос.
| Аргумент | Тип | Описание |
|---|---|---|
| $ params | множество | Параметры маршрута будут установлены. |
Предполагается, что объект отклика разрешается самим собой - это означает, что следует обрабатывать, как определенный ответ должен быть отображен в ответе приложения. Вы можете использовать простой объект ответа на компонент Symfony HTTP или определить собственные, которые должны реализовать monty responseinterface.
Обработчик определяется как callable , который зарегистрирован в определении обработчика маршрута или промежуточном программном обеспечении.
Хэндлер может быть, простые функции лямбда, объекты закрытия, классы, ... практически все, что можно было вызвать. Нет ограничений здесь.
© 2017 Willi Eßer