lesichkovm/php-autoroute
Composer 安装命令:
composer require lesichkovm/php-autoroute
包简介
Automatically maps a provided route to a controller and method
关键字:
README 文档
README
The "set-and-forget" smart router script.
Installation
A. Use composer (preferred)
composer require lesichkovm/php-autoroute
B. Manually via composer
Add the following to your composer file:
"repositories": [ { "type": "vcs", "url": "https://github.com/lesichkovm/php-autoroute.git" } ], "require": { "lesichkovm/php-autoroute": "dev-master" },
How does it work?
Just from the route (URI) it will find and execute the appropriate controller and method. Pass the current route and autoroute will call the associated controller and method.
Requirements
Your controller classes must be either included (i.e. using require_once), or you must have an autoload function registered (recommended).
See http://php.net/manual/en/language.oop5.autoload.php for how to register and autoload classes.
Example routes
Route: /admin/user-management/view-users
Executes: Admin\UserManagementController@viewUsers
Route: user/admin/test/home
Executes: User\Admin\TestController@home
Example routes using request method
Route: /admin/user-management/view-users
Executes: Admin\UserManagementController@getViewUsers
Route: user/admin/test/home
Executes: User\Admin\TestController@getHome
How to use
Simple One Line Example
autoroute(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH));
Advanced Options with Exception Catching
// 1. Get the current route $route = isset($_REQUEST['route']) ? $_REQUEST['route'] : ''; // 2. Autoroute try { autoroute($route, [ 'default_method' => 'index', 'default_controller' => 'Guest', 'default_namespace' => 'App\\Controllers', 'use_request_method' => true, ]); } catch (ReflectionException $re) { // Page not found die('Not found:' . $re->controller . '@' . $re->method); } catch (Exception $e) { // Other non routing related exception // Deal with exception (i.e. send yourself a mail) die('Exception occurred'); }
统计信息
- 总下载量: 15
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: proprietary
- 更新时间: 2018-04-01