Laravel學習


Laravel是個很強大的PHP框架,它剔除了開發中Web開發中比較痛苦的過程,提供了驗證(authentication),路由(routing),Session和緩存(caching)等開發過程中常用到的工具或者功能。

Laravel的配置都存放在app/config中。

Image(32)

里面所有的*.php都按照return的形式返回數據,那么就可以使用Config::get("key")來獲取配置。使用Config::set("key", "value") 來賦值配置項

要想使用不同的環境配置,就需要在config下創建對應配置的文件夾。然后它會覆蓋對應的配置項。

獲取當前的環境是使用App::environment(),判斷當前環境是什么是使用:App::environment("local")

providers是用來配置對應的服務的,比如:

Image(33)

Laravel的請求周期:

1 請求先從public/index.php中進入

2 bootstrap/start.php文件創建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';})

路由參數是可以有下面幾種的:

Image(34)

可選路由參數:

Image(35)

帶有默認的可選的路由參數:

Image(36)

用正則表達式限定的路由參數:

Image(37)

傳遞參數限定的數組:

Image(38)

定義全局模式:

Image(39)

不同的參數定位到不同的路由:

Image(40)

好,現在有個問題是某些路由必須要登錄或者驗證才能訪問怎么辦?這里就使用到了路由過濾器這個東西。

比如下面這個例子,當年齡小於200的時候就跳轉到主頁:

Image(41)

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);

一個基本的控制器:

Image(42)

路由就長這樣:

Image(43)

默認中,app/start/global.php文件中包含了一個處理所有異常的處理器。

Image(44)

監聽fatal error,可以使用App::fatal方法。

日志操作:

Log::info

Log::warning

Log::error


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM