1. 程式人生 > >PHP Laravel 框架學習筆記(一) 路由器 中介軟體 基礎使用

PHP Laravel 框架學習筆記(一) 路由器 中介軟體 基礎使用

用了近兩年Thinkphp,嘗試接觸下Laravel框架,在寫這篇文章的時候,其實我已經陸續學習了laravel一個多月,學習期間寫了個簡單的新聞管理系統,基本熟悉laravel的使用,寫這篇文章是回顧並加深所學的知識,並更深入的瞭解框架,使用更多更有意思的函式。如果你希望改變自我,那麼跟我一起努力吧。

路由器的使用

路由器聽起來聽起來挺高大上的,與Tp一次性配置pathinfo 模式後,按固定模式訪問程式不同,laravel的路由器更加靈活,有各種使用方式,你可以傳參,可以使用中介軟體,可以組個團統一用一個規則處理資料,你需要自己設定好每個路由的規則,下面來說說怎麼使用路由

基礎使用:

Route::get('/hello/laravel/{id}',['as'=>'route',function($id){
    return 'Hello laravel'.$id.'!';
}]);

第一個引數是從網站根目錄往後的專案路徑,id用花括號包起來,代表這是一個可傳遞的引數。
第二個引數中,首先為路由規則設定了一個route的別名,接著是傳遞了 id 引數的回撥函式。
最後在回撥函式中 return 輸出Hello Laravel $id. 到頁面中。

Rote::get 支援 get,post,match,any 等方式,any代表接受任何請求,match是一個集合,如果單獨用get 那麼用post 去訪問將會報錯,這一點上laravel能幫你很好的限制請求來源型別。

中介軟體的使用

中介軟體顧名思義就是架構在中間的那一層可複用程式,你可以像教程裡一樣寫一個十八禁的中介軟體規則,下面著重瞭解下,剛接觸沒看清楚以為要設定什麼,後來拿案例執行下就清楚了,建議你們也是先跑一下程式碼再去研究怎麼實現的,這樣做你會恍然大悟的。

1,建立一箇中間件

#在 /app/Http/Middleware 目錄下生成一個TestMiddleware.php 的中介軟體
php artisan make:middleware TestMiddleware  

#編輯TestMiddleware類的內容
public function handle($request, Closure $next
)
{
if($request->input('age')<18) //限制年齡小18歲的不能訪問 return redirect()->route('refuse'); return $next($request); }

2,註冊一箇中間件

建立完之後,我們要到 /app/Http/Kernal.php 中註冊這個中介軟體,給他起個名字叫test:

#開啟/app/Http/Kernal.php檔案,追加TestMiddleware到Kernel的$routeMiddleware屬性:
protected $routeMiddleware = [
    'auth' => \App\Http\Middleware\Authenticate::class,
    'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
    'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
    'test' => \App\Http\Middleware\TestMiddleware::class,
];

3,開始使用中介軟體

Route::group(['middleware'=>'test'],function(){
    Route::get('/write/laravelacademy',function(){
        //忽略這裡
    });
    Route::get('/update/laravelacademy',function(){
       //忽略這裡
    });
});

Route::get('/age/refuse',['as'=>'refuse',function(){
    return "十八禁!";
}]);

注意上面用的是group 組路由,就是把多個路由做成一個集合,共用一點規則, group 裡第一個引數是一個數組(php新版的寫法方括號),裡面給這個組綁定了一個 middleware 叫 test ,這個test 就是我們剛剛生成的中介軟體啦,這時候,中介軟體已經應用到 這個路由組裡了。