最近研究了Zend Framework,雖然文件方面都是英文居多,不過安裝過程不算太難。
Zend Framework簡單來說就是提供MVC架構的一種php framework,甚麼是MVC呢!!就是這個
而php的MVC並不是只有一種,比較有名的還有CakePHP,那要用哪種比較好呢?對不起,小弟還在磨練中,有請各位自行google了
但我想各有優缺點吧,挑一個自己最能上手的當然最好,像是CakePHP有中文的使用手冊,對於想要快速上手的人也許比較好!
安裝前要準備甚麼呢!!記得要先裝好php,作業系統的話windows、Mac或是Linux都可以,這次的練習是以CentOs 6當作範本,所以以下的路徑等等都是使用Linux來表示,而不同的Linux系統也會有一些些微差異。
1. 取得安裝檔
一開始要先取得需要的安裝檔,可以到這個連結,或是自行到官網尋找
到了下載頁面會看到很多個選項可以點,這裡就牽扯到要怎麼安裝和執行Zend Framework,第一個選項 "Zend Framework + Zend Server Community Edition"
這個下載是包含Zend Framework和Zend自己的伺服器,如果選擇這個選項的話就可以直接使用zend server當作伺服器,而且在Mac OSX、Windows、Ubuntu和Fedora核心等系統會有安裝精靈可以使用,算是安裝比較容易的一種方式
不過目前先不採用這種方式,server的話這次是使用Apache,所以選 "Zend Framework X.X.X Full" 這個選項,這樣就成功取得安裝檔囉!
2. 安裝與設定
下載好檔案先解壓縮,檔案放在哪都可以,目前以/usr/local/zend當作範例
解壓縮完之後修改php.ini,把剛剛zend資料夾內的library路徑新增到include_path當中,例如
include_path=".:/php/includes:/usr/local/zend/library"
冒號是用來分隔多個路徑,詳細的include_path設定可以到php官網查閱
完成此步驟後,恭喜!!Zend Framework安裝完成囉!!
3. 開啟一個新專案
完成安裝之後下一步就是新增專案啦,先到/usr/local/zend/bin目錄中找到 zf.sh 這個shell script,然後用指令的方式執行他
[root@localhost bin]# ./zf.sh create project test
執行完成後如果顯示出 Note:This command created a web project...,就表示成功新增了一個名稱為 test 的專案囉!
如果以上步驟都沒問題表示Zend Framework已經可以正常使用了,但是,在這裡提出幾個比較可能遇到的問題
問題一 : 新增專案時出現Testing Note:PHPUnit was not found in your include_path...的錯誤訊息
其實Zend Framework需要另一個php的Framework,那就是PHPUnit,PHPUnit是用來做單元測試的一個套件,如果出現這個問題就表示PHPUnit尚未安裝或是安裝好了卻還沒設定include_path
而目前PHPUnit是使用pear在管理的,所以要安裝PHPUnit前要先安裝pear,pear的安裝方法可以到這個網頁參考
pear安裝完成後就可以裝PHPUnit囉,安裝步驟可以參考這個網頁
全部都安裝好之後就是修改php.ini,需要把PHPUnit所在的資料夾加入include_path,例如
include_path=".:/usr/share/pear:/php/includes:/usr/local/zend/library:/usr/share/pear/PHPUnit"
設定完成後再新增專案就可以成功囉
問題二 : 新增專案時出現 PHP Fatal error:Class 'DOMDocument' not found in....的錯誤訊息
如果看到這個錯誤訊息表示php-xml這個套件沒有安裝,所以來趕快安裝它吧!
[root@localhost bin]# yum install php-xml
安裝完成後就可以成功新增專案
使用NetBeans新增一個Zend Framework專案
新增之前先確定好Zend Framework都安裝且設定完成,在NetBeans工具列找到Tool->options,然後點選到下面這個畫面
然後在Zend script欄位中輸入zf.sh這個檔案的路徑,設定完成後就可以使用NetBeans來新增一個Zend Framework的專案
新增專案的方式不會太複雜,所以就不另行說明!
以上就是這次的練習!如有任何問題還請多多指教!!