Laravel
根據官網的說法:
Laravel is a clean and classy framework for PHP web development. Freeing you from spaghetti code, Laravel helps you create wonderful applications using simple, expressive syntax.
Development should be a creative experience that you enjoy, not something that is painful. Enjoy the fresh air.
–
大略看了文件後,覺得跟 Ruby on Rails 的概念很接近,以下幾點特色很吸引我:
- Artisan : command-line 的操作方式, 支持擴充指令
- Autoloading : 採用 Composer 的 autoload 機制, 不用再一直忘了 require 了
- Blade Template Engine : 簡單好用的模版引擎
- Migration / Seeding : 資料庫的版本管理
- Query Builder : 幾乎所有的 MVC Framework 都會有這樣的 SQL 操作類
- Eloquent ORM / Auth : 直接就有 ORM 可以用! 並有一個簡單的 Authentication 機制
- Dependency Injection
- IoC Container
–
安裝
Get Laravel from Github
$ mkdir {project_folder}
$ cd {project_folder}
$ get clone git://github.com/laravel/laravel.git
$ git checkout develop
–
Laravel 從 4 開始就不再用舊有的 Bundle, 而採用 Composer 來作 packages 的管理與安裝.
下載 Composer
$ curl -sS https://getcomposer.org/installer | php
付予 Composer 可執行的權限
這時專案資料夾會有一個 composer.phar
的文件, 我習慣把它命名為 composer
並付予可執行的權限:
$ chmod +x ./composer.phar
$ mv composer.phar composer
–
安裝 Composer
$ composer install
安裝 Laravel 所需的 packages
$ composer update
到這裡如果都沒有發生任何錯誤, Laravel 4 就算安裝完成了.
–
開發工具
我個人偏好用 SublimeText 2 or Vim 來作為我開發的 IDE, 而基於 Laravel 我比較建議用 SublimeText, 因為有一個方便的 LaravelGenerator, 使用這個 Plugin 前需要安裝 Laravel-4-Generators.
安裝 LaravelGenerator SublimeText Plugin
在 SublimeText 中:
Command
+ Shift
+ p
出現提示後然後輸入:
install
選擇 Package Control: Install Package
接著輸入: LaravelGenerator
選擇我們要安裝的 Plugin
這樣我們就已經把 LaravelGenerator Plugin 裝進 SublimeText 了
–
安裝 Laravel-4-Generators Package
開啟專案根目錄下的 composer.json, 在 require
設定加入 "way/generators": "dev-master"
|
"require": { "laravel/framework": "4.0.*", "way/generators": "dev-master" }, |
更新並下載所需的 packages
$ composer update
加入 Laravel 的 ServiceProvider
開啟 app/config/app.php
在 providers
中加上 'Way\Generators\GeneratorsServiceProvider',
讓 artisan 運行時自動載入所需的類別
檢查 Laravel-4-Generators 是否安裝成功
$ php artisan
如果出現訊息有包含以下資訊就代表 package 安裝成功了:
|
generate generate:migration Generate a new migration. generate:model Generate an Eloquent model. generate:resource Generate a new resource. generate:seed Generate a DB seed class. generate:test Generate a PHPUnit Test. generate:view Generate a new view |
可以參考 Pro Workflow in Laravel and Sublime Text 中的影片教學.
–
設定
儲存區目錄權限設定
將 app/storage
這個資料夾裡所有文件和目錄都設為可寫入的權限:
$ chmod -R 777 ./app/storage/
在 Server 上因為我習慣上會把網站文件的群組設為 apache
(CentOS) or www-data
(Ubuntu), 再付予群組的寫入權限.
$ chown -R user:group ./app/storage
$ chmod -R g+x ./app/storage
環境設定
Laravel 的設定檔都統一放置在 app/config/
裡, 而 Laravel 可以依據 HTTP host 來決定讀取不同的設定檔, 例如測試主機和正式主機的資料庫設定可能會有所不同.
設定檔預設就是用在 production 環境, 如果有特定的設定需要在 localhost 本機環境下作變動, 只要在 app/config/
建立一個 local
資料夾, 並把設定檔放置其中即可, 例如 database.php
.
example:
app/config/ - 放置正式上線的 production 設定
app/config/local/ - 放置本機環境的設定
app/config/testing/ - Unit Testing 用的設定
環境的定義請見 /bootstrap/start.php
中
|
/* |-------------------------------------------------------------------------- | Detect The Application Environment |-------------------------------------------------------------------------- | | Laravel takes a dead simple approach to your application environments | so you can just specify a machine name or HTTP host that matches a | given environment, then we will automatically detect it for you. | */ $env = $app->detectEnvironment(array( 'local' => array('your-machine-name'), )); |
Laravel 已經事先幫你定義好 local 的環境定義, 所以你只需把 your-machine-name
置換成你的電腦名稱或是 localhost
.
Encryption Key
在編寫任何程式之前, 請先修改 app/config/app.php
的 key
(Encryption Key).
你也可以用 artisan
自動產生一組隨機文字的 key, 在這之前需要先將原本的 key 刪除:
|
/* |-------------------------------------------------------------------------- | Encryption Key |-------------------------------------------------------------------------- | | This key is used by the Illuminate encrypter service and should be set | to a random, long string, otherwise these encrypted values will not | be safe. Make sure to change it before deploying any application! | */ 'key' => '', |
接著在 Terminal 下達:
$ php artisan key:generate
–