日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

只想簡單的做個帶幾個路由的服務,用 php 框架就有點大題小作了。Klein.php,這個輕量級的路由庫,此時是一個不錯的選擇。

Klein.php - 輕量級PHP路由庫

Klein.php

簡介

Klein.php,是 klein 組織在 Github 上開源的 PHP 路由庫,代碼倉庫在
https://github.com/klein/klein.php,目前版本為 2.1.2。Klein 十分靈活,使用正則表達式進行路由匹配;接口簡單,方便快速上手開發;性能優秀,每秒可處理 2500+ 請求。

Klein.php - 輕量級PHP路由庫

Klein.php

安裝

Klein 需要 PHP 5.3.x,使用 Composer 進行安裝:

php composer.phar require klein/klein

并在主 PHP 文件中加入 autoload:

require 'vendor/autoload.php';

示例

Klein 的使用十分簡單,以下是一個 Hello World 例子:

<?php
require_once __DIR__ . '/vendor/autoload.php';

$klein = new KleinKlein();

$klein->respond('GET', '/hello-world', function () {
    return 'Hello World!';
});

$klein->dispatch();

使用 respond 注冊路由處理方法,并使用 dispatch 運行路由。

Klein 對于路由匹配使用可帶命名參數的正則表達式進行,而解析得到的參數可以通過 $request 參數獲得:

$klein->respond('/[:name]', function ($request) {
    return 'Hello ' . $request->name;
});

下面再看一些更加復雜的例子:

/posts/[*:title][i:id]      // 匹配 /posts/this-is-a-title-123
/output.[xml|json:format]?   // 匹配 /output,/output.xml 和 /output.json
/[:controller]?/[:action]?  // 匹配可選的 /controller/action 格式

也可以同時匹配多種請求方法,通過傳遞 array 實現:

$klein->respond(array('POST','GET'), $route, $callback);

對于文件上傳,klein 通過回調的 $service 參數接收;而對于發送文件,則可以使用 $response 的 send 或 file 實現:

$klein->respond(function ($request, $response, $service) {
    $service->xml = function ($object) {
        // 處理XML文件
    }
    $service->csv = function ($object) {
        // 處理CSV文件
    }
});
$klein->respond('/report.[xml|csv|json:format]?', function ($request, $response, $service) {
    $send = $request->param('format', 'json');
    $response->$send($report);  // 通過send返回對象
});
$klein->respond('/report/latest', function ($request, $response, $service) {
    $response->file('/tmp/cached_report.zip');  // 通過file返回文件路徑的文件
});

更多

  • Klein 支持路由組,可以在同一路由下定義不同的子路由以形成不同的路由命名空間。
$klein->with('/users', function () use ($klein) {
    $klein->respond('GET', '/?', function ($request, $response) {
        // 用戶列表
    });
    $klein->respond('GET', '/[:id]', function ($request, $response) {
        // 獲取單個用戶
    });
});
  • Klein 支持服務的惰性存儲,可以在首次使用時才初始化。
  • Klein 支持參數驗證,可自定義驗證方法。
$service->validateParam('key')->isHex();
$service->validate($username)->isLen(4,16);
$service->validateParam('key', 'The key was invalid')->isHex()->isLen(32);
  • Klein 支持對 Phtml 的帶參數渲染。
$service->render('myview.phtml', array('title' => 'My View'));
Klein.php - 輕量級PHP路由庫

Klein.php

總結

Klein.php 作為一個輕量的 PHP 路由庫,具備了進行微型 Web 服務應用開發的能力;其基于正則的路由匹配方法自由靈活,方便使用;接口簡潔明了,易于上手使用。

Klein.php 項目結構清晰,代碼注釋和文檔豐富,單元測試完備,同時代碼量不大,代碼質量較高,是一個值得學習的PHP庫。

分享到:
標簽:路由 PHP
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定