mark-veres / bedouin
此包的最新版本(1.0.1)没有提供许可信息。
基于文件的PHP路由系统。
1.0.1
2024-09-01 09:14 UTC
README
bedouin
基于文件的PHP路由系统。
两个文件
cartograph.php
脚本生成地图文件bedouin.php
脚本根据地图文件进行路由
安装
composer require mark-veres/bedouin
示例设置
# index.php require_once "bedouin.php"; $router = new \Bedouin\Router; $router->loadMap("map.json"); $route = $router->currentRoute(); if (isset($route->file)) include $route->file;
# gen_map.php require_once "./cartograph.php"; $cart = new \Bedouin\Cartograph; $cart->root_dir = __DIR__; $cart->route_folders = ["./routes", "./api"]; $cart->printMap("map.json");
用法
- 将
bedouin.php
和cartograph.php
文件复制到所需的目录 - 创建
routes
和static
目录 - 创建一个
index.php
文件来处理所有请求 - 将所有请求重定向到
index.php
- 创建另一个PHP文件,该文件将使用cartograph API生成地图
目录结构
404页面
- 在
routes
文件夹中创建一个404.php
文件 - 此文件不支持自定义HTTP方法
静态文件
- 将所有静态文件放在
static
目录中 - 通过
/static/*
URL访问这些文件 - 文件名区分大小写和扩展名
访问路由参数
- 给定路由
/posts/[slug]
- 和URL
/posts/test
$router = new \Bedouin\Router; // ... print_r($router->params); /* Array ( [slug] => test ) */
中间件
- 创建以
.mw.php
或.mw.get.php
(或任何HTTP方法)结尾的文件 - 中间件将绑定到放置在该目录中的索引处理器
注意
即将推出
- 地图分割(处理许多路由时的性能优化)
- 模板
提示
在Apache服务器上将所有请求重定向到bedouin.php
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php
提示
使用PHP内置服务器将所有请求重定向到bedouin.php
php -S localhost:8080 bedouin.php
提示
通过访问特定路由来重新生成地图。
# index.php require_once "bedouin.php"; if ($_SERVER["REQUEST_URI"] == "/your/custom/path") { require_once "./cartograph.php"; $cart = new \Bedouin\Cartograph; $cart->printMap("map.json"); } $router = new \Bedouin\Router; $router->loadMap("map.json"); $route = $router->currentRoute(); if (isset($route->file)) include $route->file;