devvime/modularis
最新稳定版本:1.0.1
Composer 安装命令:
composer require devvime/modularis
包简介
A Minimal and Expressive PHP Micro Routing Framework
关键字:
README 文档
README
A Minimal and Expressive PHP Micro Routing Framework
Getting Started
require dirname(__DIR__) . '/vendor/autoload.php'; use Modularis\Router; $router = new Router(); // Define your routes here $router->dispatch();
Defining Routes
Supported HTTP methods: GET, POST, PUT, DELETE, PATCH, OPTIONS, HEAD
$router->get('/', function ($request, $response) { $response->render('Hello World!'); });
Route with Controller Method
use Modularis\Controller\UserController; $router->get('/', UserController::class . '@show');
Route with Middleware
$router->get('/', function ($request, $response) { $response->render('Hello World!'); }, function ($request, $response) { // Middleware logic });
Route with Multiple Middlewares
$router->get('/', function ($request, $response) { $response->render('Hello World!'); }, [ function ($request, $response) { // First middleware logic }, function ($request, $response) { // Second middleware logic } ]);
Middleware Classes
use Modularis\Middleware\AuthMiddleware; use Modularis\Controller\AuthController; $router->get('/', function ($request, $response) { $response->render('Hello World!'); }, AuthMiddleware::class . '@verify'); $router->get('/', function ($request, $response) { $response->render('Hello World!'); }, [ AuthMiddleware::class . '@verify', AuthMiddleware::class . '@permissions' ]); $router->get('/', AuthController::class . '@index', [ AuthMiddleware::class . '@verify', AuthMiddleware::class . '@permissions' ]);
Route Groups
Basic Group
$router->group('/user')->init() ->get('/', function ($request, $response) { // GET logic }) ->post('/', function ($request, $response) { // POST logic }) ->put('/', function ($request, $response) { // PUT logic }) ->delete('/', function ($request, $response) { // DELETE logic }) ->endGroup();
With Controllers
use Modularis\Controller\UserController; $router->group('/user')->init() ->get('/', UserController::class . '@index') ->post('/', UserController::class . '@store') ->put('/', UserController::class . '@update') ->delete('/', UserController::class . '@destroy') ->endGroup();
Route Group with Middleware
Anonymous Middleware
use Modularis\Controller\UserController; $router->group('/user', function ($request, $response) { // Group-level middleware logic })->init() ->get('/', UserController::class . '@index', function ($request, $response) { // Route-level middleware logic }) ->post('/', UserController::class . '@store') ->put('/', UserController::class . '@update', [ function ($request, $response) { // First middleware logic }, function ($request, $response) { // Second middleware logic } ]) ->delete('/', UserController::class . '@destroy') ->endGroup();
Using Middleware Classes
use Modularis\Controller\UserController; use Modularis\Middleware\AuthMiddleware; $router->group('/user', AuthMiddleware::class . '@verify')->init() ->get('/', UserController::class . '@index', AuthMiddleware::class . '@permissions') ->post('/', UserController::class . '@store') ->put('/', UserController::class . '@update', [ AuthMiddleware::class . '@verify', AuthMiddleware::class . '@permissions' ]) ->delete('/', UserController::class . '@destroy') ->endGroup();
Route Parameters
Typed parameters syntax: /user/{id:int}/{name:string}/{token:uuid}
$router->get('/user/{id:int}', function ($request, $response) { $userId = $request->params['id']; print_r($request->params); // URL parameters print_r($request->body); // POST data print_r($request->query); // GET query parameters print_r($request->headers); // HTTP headers $response->render('Hello World!'); $response->json([ 'status' => 200, 'message' => 'Success' ]); });
Using a Controller
namespace Modularis\Controller; class UserController { public function show($request, $response) { $userId = $request->params['id']; print_r($request->params); print_r($request->body); print_r($request->query); print_r($request->headers); $response->render('Hello World!'); $response->json([ 'status' => 200, 'message' => 'Success' ]); } } //========================================= use Modularis\Controller\UserController; $router->get('/user/{id:int}', UserController::class . '@show');
Router Execution
require dirname(__DIR__) . '/vendor/autoload.php'; use Modularis\Router; use Modularis\Controller\UserController; $router = new Router(); $router->group('/user')->init() ->get('/', UserController::class . '@index') ->post('/', UserController::class . '@store') ->put('/', UserController::class . '@update') ->delete('/', UserController::class . '@destroy') ->endGroup(); $router->dispatch();
统计信息
- 总下载量: 13
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-05-29