為什麼這麼選擇?
如今開源盛行,從後端的各個類庫,到如今前端的jQuery插件,前端框架等,越來越多優秀的組件可以被我們選擇應用在現有的項目中。隨著開源組件的更新迭代,它們互相之間的依賴也越來越復雜。舊的框架對於新的變化總是顯得難以適從,就算為了新的特性改變舊的框架,也會顯的略顯牽強。於是就會有新的框架和工具,在這個時候凸現出來。
每個項目開始的方向是很重要的,良好的開始可以避免之後的各種問題。下面要說的三個工具,就是現有應用開發的一個良好開端。
Laravel
Laravel是一個非常新的PHP框架,借鑒了很多前輩的優秀特性,以PHP5為起點,引入了Composer作為包管理工具,號稱為WEB藝術家創造的PHP框架。
Grunt
基於JavaScript的自動化構建工具,可以將重復的任務,例如壓縮(minification),編譯,單元測試,linting等自動化。
Bower
Web前端開發的包管理工具,解決前端框架間的依賴關系,方便模塊化和重用。
優勢
使用Laravel可以更好的利用最新版PHP的優勢,排除了一些歷史問題。
利用Composer可以極大減少”輪子”的數量,優秀的包可以去Packagist找到,這些包幾乎都利用Github來托管,利用Github的issue和request可以輔助提高包的質量。
Bower可以幫助統一管理開源前端庫,如Bootstrap和jQuery等,同樣這些包也在Github上托管。
Grunt幫助粘合前後端的開源組件,將合並編譯壓縮等工作自動化。
安裝使用
前提
有些需要提前安裝的組件這裡不在贅述,請自行Google。
Composer
Node & npm
Grunt
Bower
Laravel
有了Composer後安裝一個Laravel項目非常容易
composer create-project laravel/laravel myproject
安裝完成後在myproject目錄下就生成了laravel的框架結構,入口文件在public中。在myproject根目錄下,有一個composer.json文件,這個文件看起來是這樣的:
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"require": {
"laravel/framework": "4.1.*"
},
//...
}
這個文件可以控制項目的一些依賴關系,我們需要一些組件的時候直接在require下添加即可,composer會幫我們去查找這個組件所需的依賴包。
接著為了安裝前端框架,我們先來創建幾個公共目錄,在public下,創建類似的目錄
.
|-- assets
| |-- css
| |-- fonts
| `-- js
|-- favicon.ico
|-- index.php
|-- packages
`-- robots.txt
這裡只有assets目錄是我新創建的
Bower
准備好後端框架以後,可以安裝前端框架了,例如Bootstrap。利用Bower安裝的前端庫是其整個工程,並不是我們需要的個別文件,所以可以講它們先放在一個位置,之後利用Grunt來統一處理。
首先配置一下安裝路徑,在myproject根目錄下配置文件.bowerrc為
{
"directory": "public/assets/bower"
}
這個文件告訴bower,將下載的包都安裝到public/assets/bower下。
接著在根目錄創建一個bower的配置文件bower.json為
{
"name": "myproject"
}
接著添加前端庫
bower install bootstrap -S
這個命令將會利用配置文件管理整個庫依賴,這個時候再看一下配置文件,bower已經幫助我們自動安裝好了Bootstrap依賴的包–jQuery,同時修改了配置文件
{
"name": "myproject",
"dependencies": {
"bootstrap": "~3.1.1"
}
}
在看一下目標目錄,public/assets下,生成了一個bower目錄,其中包含了Bootstrap和jQuery。
Grunt
根據上面的步驟,我們很方便的建立了後端框架和前端框架,但是前端框架在使用的時候直接用bower下的文件並不是非常方便,而且還可能會涉及到一些庫的合並壓縮等步驟。這些問題都可以交給Grunt去做.
首先在myproject根目錄下利用npm init初始化一個配置文件。根據提示一步一步填寫即可,最後生成的配置文件package.json應該如下所示:
{
"name": "myproject",