標籤:style http 使用 檔案 io art
原作者部落格:ieqi.net
====================================================================================================
Web開發框最大的存在意義無疑是為開發人員提供便利,這種被提供的便利不僅表現在對於整個應用介面上的梳理、組織和解耦,也表現在更多細微方便,比如各種工具的提供。Laravel3為開發人員提供了各種有關web開發的工具,讓開發人員在開發應用時只需要關注於自身的業務,而不必在拘泥在其他外延的糾纏。
跳轉
跳轉在Web應用中經常被用到,Laravel3提供豐富的實現跳轉的方法:
跳轉到特定uri:
return Redirect::to(‘user/profile‘);
附帶特定的狀態代碼如301/302進行跳轉:
return Redirect::to(‘user/profile‘, 301);
發起https跳轉:
return Redirect::to_secure(‘user/profile‘);
返回應用根目錄:
return Redirect::home();
返回上一個動作uri的跳轉:
return Redirect::back();
跳轉到一個命名路由:
return Redirect::to_route(‘profile‘);
跳轉到某一個controller類中的方法:
return Redirect::to_action(‘[email protected]‘);
附帶參數可以這樣:
return Redirect::to_route(‘profile‘, array($username));return Redirect::to_action(‘[email protected]‘, array($username));
附帶flash訊息的跳轉:
return Redirect::to(‘profile‘)->with(‘status‘, ‘Welcome Back!‘);
可以這樣讀取msg內容:
$status = Session::get(‘status‘);
錯誤響應返回
404錯誤返回:
return Response::error(‘404‘);
500錯誤返回:
return Response::error(‘500‘);
類庫的調用
對於經常使用的類庫可以將類庫檔案放到application/libraries檔案夾下,laravel用自動載入這些類庫,不必再手動顯式載入調用,簡化了開發。比如我們建立一個application/libraries/printer.php類庫檔案,其內容為:
class Printer { public static function write($text) { echo $text; }}
然後就可以在其他地方通過Printer::write()來調用類庫中的方法了。
檔案下載
返回一個檔案下載響應:
return Response::download(‘file/path.jpg‘);
可以對檔案進行重新命名:
return Response::download(‘file/path.jpg‘, ‘photo.jpg‘);
資源管理
Laravel3在管理css和js資源檔方面提供了一些協助,(個人感覺用處不大,如果不能很好的和backbone這樣的前端架構整合,這個功能意義真的不大)。
添加資源:
Asset::add(‘jquery‘, ‘js/jquery.js‘);
第一個參數是資源名,第二個參數是資源檔相對於public檔案夾的位置。
我們知道不管是css還是js在前端載入的時候都需要有一定的順序,這就牽扯到了依賴,所以在添加資源的時候不能不考資源依賴的問題。
在添加資源的時候我們可以這樣處理:
// jquery-ui 資源依賴 jqueryAsset::add(‘jquery-ui‘, ‘js/jquery-ui.js‘, ‘jquery‘);
這樣,Laravel3 就會協助我們自動處理好資源依賴問題了。
當某個資源依賴多個其他資源時,只需要將其他資源作為數組當做第三個參數傳入:
// third 資源同時一來first資源與second資源Asset::add(‘third‘, ‘js/third.js‘, array(‘first‘, ‘second‘));
然後在模板中調用Asset::styles()和 Asset::scripts()方法可以調用出已經添加的資源,即產生相應的html代碼在view中渲染:
如下:
echo Asset::styles();echo Asset::scripts();
在blade模板中可以直接使用
{{Asset::styles();}}{{Asset::scripts();}}資源容器
往往我們需要粒度更細的資源管理,比如我們希望一部分js在網頁底部載入以提高網頁整體的載入速度。這時候我們可以使用資源容器來協助我們再組織資源,以方便部分調用。
建立一個資源容器並且向其中添加資源:
// 建立容器名為footerAsset::container(‘footer‘)->add(‘example‘, ‘js/example.js‘);
這樣調用:
echo Asset::container(‘footer‘)->scripts();
如果是在Blade模板之中可以這樣:
{{Asset::container(‘footer‘)->scripts();}}
對於bundle的資源,Laravel3也為我們提供了方案,只需將資源容器與bundle綁定:
Asset::container(‘foo‘)->bundle(‘admin‘);
然後我們再往此容器中添加資源的時候,Laravel3將會自動為我們指向bundle所在public目錄,我們只需要填寫資源的相對路徑。