Download the PHP package alexpts/php-simple-router without Composer
On this page you can find all versions of the php package alexpts/php-simple-router. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download alexpts/php-simple-router
More information about alexpts/php-simple-router
Files in alexpts/php-simple-router
Package php-simple-router
Short Description Simple router compatible with the PSR-7
License MIT
Homepage https://github.com/alexpts/php-simple-router
Informations about the package php-simple-router
php-simple-router
Simple router compatible with the PSR-7
Роутер предназначен для передачи управления обработчику запроса по входному http запросу. Весь роутинг делиться на небольшие компоненты, которые занимаются определенной задачей.
Router
Объект, который храни в себе путь/регулярку и ряд ограничений на http метод или переменную запроса, а также обработчик, который нужно вызвать для этого пути.
CollectionRoute
Объект для работы с коллекцией роутов. Роуты добавляются в коллекцию роутов с определенным приоритетом.
Метод getRoutes
возвращает массив всех роутов отсортированных по приоритету.
Matcher
Объект осуществляет поиск активного роута на основе соллекции роутов и текущего uri запроса. Простой поиск первого совпадения (наиболее приоритетного роута):
Можно получить все endPoint
объекты, а не только первый. Метод match
возвращает генератор. Через генератор достаются все объекты endPoint
совпавших роутов.
Брагодаря такой конструкции, можно выполнять маленькие обработчики друг за другом и др.
EndPoint
Все обработчики поддерживают интерфейс IPoint и служат для создания обработчика запроса с нужными параметрами и вызова обработчика с нужными параметрами. В комплекте идет ряд реализаций endPoint, которые могут помочь коротко и лаконично описать правила роутинга вашего приложения.
CallablePoint
Предназначен для вызова любого обработчика callable типа.
ControllerPoint
Явно задает класс контроллера и метод.
DynamicController
Класс контроллера формируется динамически из переменной запрос :controller
, которая является обязательной.
Action берется из переменной запроса :action
(по умолчанию index
)
ControllerDynamicAction
Похож на DynamicController
за исключением того, что контрллер указывается явно, а не берется динамически из переменной запроса :controller
.
Создавайте новые endPoint
Охватить специфику каждого проекта очень сложно и это будет избыточно. Вы можете легко создать более специфичный класс типа IPoint
на основе базовых классов или с нуля. Примером такого класса для своего проекта служит класс DynamicBundleController
. Он призван показать как легко и просто делаются endPoint-ы под свой проект, если дефолтные по какой-то причине не подошли.