1. 程式人生 > >Laravel框架特性分析

Laravel框架特性分析

1.擁有一個簡單的核心Container類,對於很多的php框架擁有的功能如路由請求攔截,檢視渲染,許可權控制,快取等都是整合在框架內部實現的,但是laravel框架是獨立實現的,這些功能可以理解為服務,通過provider(提供器),註冊到核心容器container去實現的.

Application繼承Container類,這個類是負責排程和組裝各種元件服務的容器,開啟config目錄裡的app.php,裡面的provider有很多的服務,如許可權,檔案,也可以加入一些第三方的服務,實現自動載入類,


優點:

1、程式碼比較明白易懂,跟英語句子差不多,關鍵詞就是函式,舉個例子,獲取資料庫中某個表的所有資料:

$article=new Article;
$articles=$article->all();  //這樣就得到了articles表所有記錄的所有欄位;
$count = $article->where('class_id','=', 1)->count(); //是不是一看就明白了意思?查詢分類id為1的記錄,並計算出個數。
  • 1
  • 2
  • 3

這樣的例子太多,舉例就舉這兩個。 
2、文件非常豐富,社群也是非常活躍,現在全球範圍內佔有率最高,基本上所有的問題都可以找到答案;

3、大量的第三方開源庫(composer收錄的超過5500個包),可以快速方便的實現模組功能,第三方優秀的包官方都有詳細使用手冊。例如:laravel/collective

4、安全機制非常齊全,提交表單的資料驗證(驗證有差不多80種,能想到的基本都有),提交資料時產生隨機_token驗證,避免非法提交,能避免跨域攻擊;

5、中介軟體和路由,對訪問進行過濾及控制,呼叫函式類和方法前進行判斷請求的合法性,避免非法請求;

6、錯誤處理機制簡單好用,如果出錯直接呼叫$error->all(),即可輸出全部錯誤,對錶單驗證尤其好用;

缺點:

1、稍複雜,上手比一般框架要慢;

2、大量引用第三方包,但我們只使用類中的部分方法,程式碼顯得有些冗餘;

3、效能與一般框架稍有優勢,但比yaf等小型框架效率會低一些。

總結:laravel是一款年輕型的框架,使用人數全球第一,文件齊全,大量第三方優秀包供引用,適合大型網站協同開發。關於效能問題,說一下我自己的看法,PHP開發的Web系統的瓶頸一般都不在語言本身的執行層面,語言執行的耗時,只佔據了整個系統的1%不到,主要耗時是在網路通訊上。源生PHP和框架下PHP的效率對比,只能說使用場合不一樣。源生PHP輸出hello world
比用框架快幾百倍,但框架不是用來寫hello word的。徒手打蚊子肯定比高射炮效率高几百上千倍,但高射炮是用來打蚊子的嗎?