fhooe / router
一个用于教育目的的简单面向对象的路由器。
Requires
- php: ^8.3
- ext-mbstring: *
- psr/log: ^3.0
Requires (Dev)
- pestphp/pest: ^2.33
- phpstan/phpstan: ^1.10
README
fhooe/router 是为奥地利应用科学大学哈根贝格校区媒体技术与设计专业的 PHP 类开发的一个简单面向对象的路由器。它主要用于教育目的(学习路由和面向对象原则)。其功能设计上有限(例如,仅支持 GET 和 POST 协议)。请在自行承担风险的情况下用于“公开”应用程序。
安装
在项目中使用 fhooe-router 的推荐方法是使用 Composer
composer require fhooe/router
或者,您可以使用 fhooe/router-skeleton 项目,该项目提供了一个基于 fhooe/router 的完全工作的示例(包括一些简单的视图)
composer create-project fhooe/router-skeleton path/to/install
Composer 将在 path/to/install
目录中创建一个项目。
基本用法
fhooe/router 可以用两种方式使用
使用 Router
对象(推荐)
-
实例化
Router
类。$router = new Router();
-
使用
get()
和post()
方法定义路由。提供一个 URI 模式进行匹配,并提供一个回调,当模式和协议都匹配时执行。$router->get("/", function() { // e.g., load a view });
-
设置一个 404 回调以加载视图或触发无路由匹配时的行为。
$router->set404Callback(function() { // e.g., load a 404 view });
-
可选:如果您的应用程序不在服务器的文档根目录中,请定义一个基本路径。
$router->setBasePath("/path/to/your/files");
-
运行路由器。这将获取当前 URI,将其与定义的路由进行匹配,并在找到匹配项时执行它们。
$router->run();
使用静态路由方法 Router::getRoute()
-
调用静态方法。如果您的项目不在服务器的文档根目录中,请提供基本路径作为参数。该方法返回形式为
PROTOCOL /pattern
的字符串形式的路由,例如,当对根目录发出 GET 请求时,返回GET /
。$route = Router::getRoute("/path/to/your/files");
-
使用条件表达式来决定如何处理匹配的路由。
switch($route) { case "GET /": // e.g., load a view break; default: // e.g., load the 404 view break; }
静态方法主要用于快速获取路由字符串。它提供较少的功能,例如,没有反向路由解析。
贡献
如果您想贡献,请参阅 CONTRIBUTING 以获取详细信息。
许可协议
fhooe/router 使用 MIT 许可协议。有关更多信息,请参阅 LICENSE。