以往我在使用 Zend_Tool 來建構專案時,都是要透過 CLI 環境來執行 zf 指令;這常使得我必須在 NetBeans IDE 視窗和 Command Line 視窗之間切換。還好, NetBeans 從 6.9 版之後就將 Zend Framework 的 Command Line 工具整合進來,這樣一來我們就可以更方便使用 NetBeans 來開發 Zend Framework 專案了。
以下我將簡單介紹如何在 NetBeans 中使用 Zend Framework 的整合功能,提供大家參考。
Zend Framewok 環境建置
更新:建置 Zend Framework 開發環境的部份,我已經獨立到新文章中了,請參考:「從 PEAR 安裝 Zend Framework 」及「手動建置 Zend Framewok 1.1x 開發環境」。
另外要注意,用 PEAR 安裝和手動安裝後的 zf 指令路徑是不太一樣的,在 NetBeans 中設定時請特別小心。
建置完成後,如果已經建立了 .zf.ini 的話,可以將它先刪除,因為後面我們會讓 NetBeans 再幫我們建立一次。
設定 NetBeans
在 NetBeans 的官方下載頁將 NetBeans for PHP 下載回來後,就請按照畫面提示進行安裝,安裝好後請開啟執行。
接著執行 NetBeans 上方工具列的「 Tools > Options > PHP 」開啟 PHP 設定視窗,然後切換到 Zend 頁籤:
原則上, NetBeans 應該會自己找到 zf.bat 的檔案路徑,但如果沒有的話,各位可以自行按下「 Search… 」鍵來指定。
接著為了讓 NetBeans 可以認得 zf 提供的指令,請按下「 Register Provider 」鍵。這時 NetBeans 會呼叫 zf 指令來建立 .zf.ini ,並且將內建的 NetBeansCommandsProvider 註冊進去。完成後會出現下圖:
切換到輸出視窗,我們可以看到 NetBeans 其實是呼叫了「 zf create config 」:
在 zf 建立好 .zf.ini 後, NetBeans 會在 php.include_path 補上:「 C:\Program Files\NetBeans 7.0 Beta\php\zend; 」。
註:如果先前沒有先刪掉 .zf.ini 的話, zf create config 的動作會失敗,這時就要手動將這個路徑補上去。
接著 NetBeans 會再呼叫「 zf enable config.provider NetBeansCommandsProvider 」:
最後打開 D:\AppServ\ZF.zf.ini ,我們就會看到以下結果:
1 2 | |
另外也別忘了在 Global Include Path 裡把 library/Zend 加進去:
至此,我們就完成 Zend Framework 在 NetBeans 上的設定了。
建立 Zend Framework 專案
接著我們可以試著建立一個 Zend Framework 專案,請在 NetBeans 工具列上選擇「 File > New Project… 」:
接下來就是設定專案名稱及選擇專案位置:
再來是選擇 Web 伺服器及網址:
最後就是選擇我們要用哪一種 Web Framework 建立專案,這裡當然就是選 Zend Framework 囉:
完成後就會出現以下畫面, NetBeans 會很貼心地為我們預先開啟需要修改的檔案:
是不是很方便呢?
在專案上執行 zf 提供的指令
一開始我們花了一點時間設定了 zf 指令的部份,那麼就表示我們應該是可以在在專案上執行 zf 提供的指令。而原先我以為 NetBeans 會在滑鼠右鍵提供相關的指令,不過實際瞭解之後才知道它提供了一個更為強大的介面。
請大家在 Project 視窗的專案名稱上 (這裡即為 netbeans_zf ) ,按下滑鼠右鍵選擇「 Zend > Run Commands… 」;沒有意外的話,就會出現以下的對話視窗:
簡單說明一下這個對話視窗中的各輸入欄位:
-
Fitler :可以用來過濾要輸入的指令。例如輸入 create 的話,就只會在下方的 Matching Tasks 列出所有開頭為 create 的指令。
-
Parameters :輸入指令的參數。像是專案、 Controller 或 Model 的名稱等。
-
Matching Tasks : zf 支援的指令列表。點選任何一個指令後,就會在它下方出現完整的說明。
-
Command :即將要執行的指令,我們可以在這裡檢查稍後要執行的指令是不是正確的。
-
Keep this dialog opened :保持這個對話視窗的開啟,方便輸入下個指令。
-
Refresh Commands :如果 Matching Tasks 沒有出現指令列表的話,可以按一下這個鍵來重新整理。但是如果還是沒有出現的話,就要檢查一下 .zf.ini 有沒有正確的被設定 (也就是要執行 NetBeans 的「Register Provider」功能) 。
-
Run :執行 Command 欄位中的指令。
我個人非常喜歡這個介面,因為以往我必須在 Command Line 裡去輸入「 zf ? 」來查看每個指令的用途與參數,然而卻因為輸出的訊息非常的多,可能看到後面就忘了前面了;這個對話視窗可以節省我不少滾動滑鼠的時間,強烈建議大家熟悉它的用法。
範例:建立 Model
接下來我們可以試著用這個介面來建立 Model ;在 Filter 裡輸入 create model ,並在 Parameters 中輸入 Test :
這時候我們應該會在 Command 中看到 zf.bat create model Test 這個完整的指令;按下 Run 鍵之後,我們就會在輸出視窗看到以下結果:
這時候就可以看到在 Projects 視窗中發現 D:\WEB\wwwroot\netbeans_zf\application\models\ 下建立了 Test.php 了。
心得
NetBeans 這次在 Zend Framework 上的支援,可以說是下了一番功夫;不論在建立專案,或是在整合快速建置指令上,都令人非常讚賞。
不過我個人還是覺得有個小小的缺憾,那就是我無法更方便地用視覺化的方式編輯 .zfproject.xml 這個檔案,也許是因為 zf 指令本身也沒提供的關係吧。
我希望未來 NetBeans 可以開放模組化的架構,讓其它 PHP Framework 也可以如此便利地透過它來開發;這樣一來,或許 NetBeans 就可以在 PHP IDE 上佔有一席之地了。
謝謝收看。












