首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

Dispatch PHP 微框架輕量級路由指南:API、原型、簡單站點的極速構建利器

     編輯:PHP 相關知識

什麼是 Dispatch?

Dispatch 是極簡 PHP 微框架(單文件 < 100KB),無 MVC 強制結構,專注於路由定義 + 閉包處理,適合 API、單頁應用後端、快速原型、微服務。

安裝

composer require dispatch/dispatch
# 或直接下載 dispatch.php 放入項目

核心 API

方法用途示例
get($pattern, $callable)GET 路由`get('/user/{id}', fn($id) => ...)`
post($pattern, $callable)POST 路由`post('/login', fn() => ...)`
put/patch/delete/options其他 HTTP 動詞`delete('/user/{id}', ...)`
any($pattern, $callable)匹配所有方法`any('/health', ...)`
render($view, $data)渲染視圖 (需模板引擎)`render('user', ['name'=>$name])`
dispatch()啟動路由分發放在文件末尾
from($array, $key)安全獲取輸入`from($_POST, 'email')`

路由模式語法

// 靜態路由
get('/about', fn() => 'About Us');

// 參數路由(花括號)
get('/user/{id}', function($id) {
    return "User ID: $id";
});

// 可選參數
get('/posts[/{page}]', function($page = 1) {
    return "Page: $page";
});

// 正則約束
get('/user/{id:\d+}', function($id) { // 僅匹配數字
    return "User $id";
});

// 萬用匹配(需放最後)
any('{path:.+}', fn($path) => "404: $path");

完整示例:RESTful API

<?php
require 'vendor/autoload.php';

use Dispatch\App;

$app = new App();

// 中間件風格:前置處理
$app->before(function() {
    header('Content-Type: application/json; charset=utf-8');
    // CORS
    header('Access-Control-Allow-Origin: *');
    header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS');
    header('Access-Control-Allow-Headers: Content-Type, Authorization');
});

// 路由定義
get('/api/users', function() {
    $users = User::all(); // 假設模型
    return json_encode(['data' => $users]);
});

get('/api/users/{id:\d+}', function($id) {
    $user = User::find($id);
    if (!$user) {
        http_response_code(404);
        return json_encode(['error' => 'Not found']);
    }
    return json_encode(['data' => $user]);
});

post('/api/users', function() {
    $input = json_decode(file_get_contents('php://input'), true);
    $user = User::create($input);
    http_response_code(201);
    return json_encode(['data' => $user]);
});

put('/api/users/{id:\d+}', function($id) {
    $input = json_decode(file_get_contents('php://input'), true);
    $user = User::find($id);
    if (!$user) { http_response_code(404); return json_encode(['error' => 'Not found']); }
    $user->update($input);
    return json_encode(['data' => $user]);
});

delete('/api/users/{id:\d+}', function($id) {
    User::destroy($id);
    http_response_code(204);
});

// 異常處理
$app->error(function(Exception $e) {
    http_response_code(500);
    return json_encode(['error' => $e->getMessage()]);
});

// 啟動
dispatch();

視圖渲染整合

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved