cybe / cybe-router
简单的PHP路由库
v1.1.0
2021-01-16 01:40 UTC
Requires
- php: >=7.4
README
需求
- PHP 7.4 或更高版本
- composer
快速开始
安装
composer require cybe/cybe-router:1.1.0
基本用法
假设 ./public/ 是一个包含 index.php 文件的公开访问目录
<?php // public/index.php require_once __DIR__ . "/../vendor/autoload.php"; use Cybe\Router; $router = new Router; // GET method $router->get("/", function() { echo "Hello World!"; }); // POST method $router->post("/", function() { echo "This is POST"; }) $router->serve();
然后在终端中运行以下命令以启动本地服务器。
php -S localhost:9000 -t public
指南/示例
使用现有函数作为回调
<?php // public/index.php require_once __DIR__ . "/../vendor/autoload.php"; use Cybe\Router; // existing function function hello_world() { echo "Hello World!"; } $router = new Router; $router->get("/", "hello_world"); $router->serve();
使用类
<?php // public/index.php require_once __DIR__ . "/../vendor/autoload.php"; use Cybe\Router; // class class Example { public function hello_world() { echo "Hello World!"; } } $router = new Router; $router->get("/", [[new Example, "hello_world"]]); $router->serve();
动态路由
<?php // public/index.php require_once __DIR__ . "/../vendor/autoload.php"; use Cybe\Router; $router = new Router; $router->get("/:name", function ($param) { echo "Hello " . $param['name'] . "!"; }); $router->serve();
中间件
<?php // public/index.php require_once __DIR__ . "/../vendor/autoload.php"; use Cybe\Router; // middleware function middleware($param, $position, $next) { if ($param["name"] != "akbar") { echo "You're not Akbar"; } else { //execute next function $next($param, $position); } } //controller function controller($param) { echo "Hello " . $param['name'] . "!"; } $router = new Router; $router->get("/:name", ["middleware", "controller"]); $router->serve();
自定义404页面
<?php // public/index.php require_once __DIR__ . "/../vendor/autoload.php"; use Cybe\Router; $router = new Router; // setting custom 404 page $router->set_404(function () { echo "Page not found"; }); $router->get("/", function () { echo "Hello World!"; }); $router->serve();