Laravel是個很強大的PHP框架,它剔除了開發中Web開發中比較痛苦的過程,提供了驗證(authentication),路由(routing),Session和緩存(caching)等開發過程當中經常使用到的工具或者功能。php
Laravel的配置都存放在app/config中。正則表達式
裏面全部的*.php都按照return的形式返回數據,那麼就可使用Config::get("key")來獲取配置。使用Config::set("key", "value") 來賦值配置項json
要想使用不一樣的環境配置,就須要在config下建立對應配置的文件夾。而後它會覆蓋對應的配置項。bootstrap
獲取當前的環境是使用App::environment(),判斷當前環境是什麼是使用:App::environment("local")數組
providers是用來配置對應的服務的,好比:緩存
Laravel的請求週期:服務器
1 請求先從public/index.php中進入cookie
2 bootstrap/start.php文件建立app並檢測環境app
3 內部的 /Illuminate/Foundation/start.php文件配置相關設置並加載服務器框架
4 加載app/start目錄下的文件
5 加載app/routes.php的路由設置
6 request經過controller等轉化爲response
7 返回response
路由配置:
配置的格式是:
Route::get('foo/bar', funciton(){return 'Hello World';})
路由參數是能夠有下面幾種的:
可選路由參數:
帶有默認的可選的路由參數:
用正則表達式限定的路由參數:
傳遞參數限定的數組:
定義全局模式:
不一樣的參數定位到不一樣的路由:
好,如今有個問題是某些路由必需要登陸或者驗證才能訪問怎麼辦?這裏就使用到了路由過濾器這個東西。
好比下面這個例子,當年齡小於200的時候就跳轉到主頁:
Request中的操做:
獲取用戶提交的值:Input::get('name');
獲取用戶提交的值並指定默認值:Input::get('name', 'Sally');
用戶提交的信息是否存在:Input::has('name')
獲取全部用戶提交的信息:Input::all()
獲取其中幾項指定的信息:Input::only('username', 'password');
獲取除幾項以外的提交信息:Input::except('card');
訪問用戶提交的數組:Input::get('products.0.name');
cookie操做:
獲取Cookie中的值:Cookie::get('name')
添加一個Cookie:
$response = Response::make('Hello World');
response−>withCookie(Cookie::make(′name′,′value′,minutes));
若是想在Response以前設置Cookie,使用Cookie::queue()
Cookie::queue(name,value, $minute);
Session操做:
存儲一個變量:Session::put('key', 'value');
讀取一個變量:Session::get('key');
讀取一個變量或者返回默認值:Session::get('key', 'default');
檢查一個變量是否存在:Sesssion::has('key');
刪除一個變量:Session::forget('key');
刪除全部Session變量:Session::flush();
文件上傳操做:
獲取用戶上傳文件:$file = Input::file('photo');
判斷是否有上傳這個文件:Input::hasFile('photo');
移動上傳的文件:
Input::file('photo')->move($destinationPath);
Input::file('photo')->move(destinationPath,fileName);
獲取上傳文件大小:
Input::file('photo')->getSize();
獲取上傳文件類型:
Input::file('photo')->getMimeType();
獲取用戶請求路徑:Request::path();
獲取用戶請求URL:Request::url();
獲取Header中的信息:Request::header('Content-Type');
獲取SERVER中的信息:Request::server('PATH_INFO');
重定向:
重定向: return Redirect::to('user/login');
有參數的重定向: return Redirect::to('user/login')->with('message', 'Login Failed');
重定向到路由:return Redirect::route('profile', array('user' => 1));
返回重定向到Action:return Redirect::action('UserController@profile', array('user' => 1));
視圖層:
傳遞數據給視圖:$view = View::make('greeting')->with('name', 'Steve');
將一個視圖傳遞給另外一個視圖:$view = View::make('greeting')->nest('child', 'child.view');
返回json:return Response::json(array('name' => 'Steve', 'state' => 'CA'));
返回jsonp:return Response::json(array('name' => 'Steve', 'state' => 'CA'))->setCallback(Input::get('callback'));
返回下載文件:
return Response::download($pathToFile);
return Response::download(pathToFile,status, $headers);
一個基本的控制器:
路由就長這樣:
默認中,app/start/global.php文件中包含了一個處理全部異常的處理器。
監聽fatal error,可使用App::fatal方法。
日誌操做:
Log::info
Log::warning
Log::error