> For the complete documentation index, see [llms.txt](https://tony915.gitbook.io/laravel-4-2/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://tony915.gitbook.io/laravel-4-2/intro_laravel/what_is_laravel.md).

# 認識 Laravel

## Laravel 是什麼

PHP 是個很容易學習及撰寫的程式語言，對於開發網頁的初學者，可以很快的學會並立即使用。當網站逐漸變得龐大時，如果沒有一套規則來管理日漸增多的程式碼檔案，將會增加錯誤發生的機率，並且也會造成維護上的負擔。這時就需要建立一個架構，讓開發的程式碼檔案遵循這個架構的規範，達到易於維護及擴展。

PHP 的框架非常多，那為什麼選擇 Laravel，因為它真的非常好用且容易上手。沒有繁鎖的設定，框架的觀念簡單易懂，更可以搭配終端機指令，讓開發速度加倍。好用的技術自然會吸引開發者的加入，根據 [SitePoint 的調查報告(Best PHP Framework for 2015 – SitePoint Survey Results)](http://www.sitepoint.com/best-php-framework-2015-sitepoint-survey-results/)\[1]，2015 年最佳 PHP 框架，Laravel 排名最受歡迎的第一名（其實[2014年](http://www.sitepoint.com/best-php-frameworks-2014/)\[2]就已經是第一名了）。

最後，讓我們來看看 [Laravel 官網](http://laravel.com/)\[3] 上對 Laravel 的介紹：

> The PHP Framework For Web Artisans.

## 框架是什麼

框架 (Framework) 是一個被設計用來完成特定任務的規範，程式設計師必須遵循這個規範來開發軟體或網站。現在大多數的框架都參考 MVC 架構為概念來設計，在早期開始這麼做的原因是，當時的網頁是由 HTML 混合 PHP 程式碼的方式來編寫，這會造成一個很麻煩的結果，也就是即使你只是單純想改個網頁畫面上的某個元件，並不會動到任何 PHP 程式碼，但是因為它們是混在一起的，所以你不得不在混雜的程式碼中找到它來修改。

於是有人想到了把這些有各自任務的部份切割開來。MVC 架構可以把這些部份各自獨立成 Model-View-Controller（模型－視圖－控制器）。Model 屬於資料的部份，可能是商業邏輯或是資料庫存取等；View 屬於顯示的部份，像是 HTML、CSS 等；Controller 會偵對請求做出回應及處理，例如從 Model 中取得資料，並要求 View 來顯示。

## Laravel 框架

Laravel 是基於 MVC 架構模式來打造的框架，並且設計出許多讓開發者更有效率的工具。Laravel 的 Artisan 提供許多指令，讓你可以使用這些指令，快速的完成許多任務；它的 Blade 樣板系統，將程式碼與 HTML 頁面完整的分離，讓你專注在網頁頁面的設計；它的 Routing 機制，簡單卻強大的管理網址與頁面的路徑指定；利用 Controller 將程式邏輯隱藏在背後；Eloquent ORM 讓你再也不必撰寫任何的 SQL 指令就能和資料庫互動；利用 Migration 工具，讓資料庫的遷移不再是一件惱人的事。還有很多強大的功能，您將在使用後愛上它。

* \[1] <http://www.sitepoint.com/best-php-framework-2015-sitepoint-survey-results/>
* \[2] <http://www.sitepoint.com/best-php-frameworks-2014/>
* \[3] <http://laravel.com/>
