2009年12月22日 星期二

CakePHP教學 on OSX(五)開發環境與伺服器測試:CakePHP in Aptana with MAMP



RoR in Aptana
RoR的魔術之一,是可以透過Generator等用Ruby寫的腳本程式,一口氣自動地產生整個Model, Controller 跟 View等相關的基本程式碼。唯一可惜的是,這個魔術得在終端機視窗裡,手動地鍵入指令來執行。這種方式對於習慣OSX圖形介面(GUI)的人跟懶得記憶指令碼的我來,說真是一場惡夢。所幸Aptana的RadRails套件,把RoR的Generator等腳本都作成一個個的View視窗,可以透過GUI來選擇執行項目與輸入參數。我想光這個功能就可以讓Aptana登上OSX上的RoR開發環境的前幾名了:

Aptana還有內建主控台(Console)分割視窗來顯示輸出結果,不須要離開Aptana去打開“終端機”程式。Aptana甚至還有內建的瀏覽器,可以直接檢視網頁的輸出結果。只差了MySQL資料庫,如果用Splite這個RoR內建的簡單資料庫,開發RoR可以完全在Aptana內進行,不須要其他附加的軟體,可以說是名符其實一網打盡的整合式開發環境。(雖然RadRails還是需要系統預先安裝Xcode套件。安裝RadRails時,Aptana會要求安裝OSX的開發軟體Xcode,因為RadRails還是需要OSX系統內先安裝Ruby的Gem套件,這是Rails管理與安裝相關套件的必要工具。)

CakePHP in Aptana

CakePHP也有類似RoR的Generator自動程式碼產生器,名字叫cake bake的腳本程式。不過也跟RoR的Generator一樣,還是要使用命令列的方式,手動地由終端機上輸入像是火星文一般的指令;或是是透過PHP主控台來執行一個叫“cake.php”的程式。但是如果用了Aptana這類的IDE來還要這麼作,未免也太遜了。可惜Aptana 2.0已經沒有開發官方的PHP套件,除了麵包店裡這一篇“Setting up Eclipse to work with Cake”有解說如何整合Eclipse跟CakePHP之外,網路上也沒有相關Aptana整合CakePHP的中文訊息。不過既然Aptana是基於Eclipse,設定方法應該也類似。於是嘗試一下根據這篇的說明來操作,是了半天終於給試了出來。不過要在Aptana內直接使用cake bake腳本程式,得要先把cakephp輸入成Aptana的專案:
  1. 先確定Aptana已經安裝了PDT套件;MAMP已經啓動;並且在MAMP的網頁根目錄htdocs檔案夾裡已經把CakePHP檔案複製到cake_1_2檔案夾。接下來要把cake_1_2檔案夾,變成Aptana裡建立成一個專案(project):
  2. 按Aptana視窗左上角“新增圖像”右邊那個很小的“倒三角”(哎,這是從Eclipse來的彆腳介面),從選單裡選擇“Project...”;
  3. 接下來要選擇巫師(wizard?),請選擇PHP Project:
  4. 進入“PHP Project”視窗,專案名稱輸入 cake_1_2(最好跟檔案夾名稱一致)。因為要匯入cake_1_2這個檔案夾,這裡要選“Creat project form existing source”,然後按下“Browse...”按鈕:
  5. 找到 /Appliations/MAMP/htdocs 找 cake_1_2 檔案夾(找路徑的過程中請用“點二下”打開檔案夾,不要按右下角的“開啓”按鈕),找到cake_1_2 檔案夾後不要打開,按一下檔案夾圖像再按右下角的 “打開”按鈕:
  6. 回到“PHP Project”視窗,按下“Finish”結束:
  7. 如果本來的“Perspective”(透視?在Aptana/Eclipse 指的是配合不同開發目的,各個相關分割視窗的配製方式)不是PHP,會提示要不要開啓“PHP Perspective”。請按“Yes”,讓Aptana將畫面配製成適合PHP的形式:
  8. 接下來測試一下Aptana內建的網頁伺服器。因為Aptana沒有內建PHP的執行環境,請先確定MAMP伺服器已經開啓,否則無法執行.php檔案。在 cake_1_2 專案下的 index.php 上按右鍵,選取“Run As > PHP Web Page”:
  9. 第一次執行“Run As”,Aptana會提示確認檔案路徑,下次就會用相同地方式執行。請按“OK”:
  10. 如果一切正確,Aptana內建的瀏覽器會顯示CakePHP的首頁:

Bake in Aptana
CakePHP成為Aptana的專案後,接下來要製作Aptana執行cake bake的指令:
  1. 從Aptana的 Run 選單下選擇“External Tools Configurations...”:
  2. 先在“External Tools Configurations”視窗的側邊欄上點一下“Program”,然後按一下左上角的“新增”圖示:

  3. 新增後,在右邊的Name欄位輸入 bake ,然後按一下“Browse Workspace...”:
  4. 出現“Choose Location”視窗,找到 cake_1_2/cake/console 目錄點一下,然後點右邊的 cake 檔案(不是cake.bat或cake.php):
  5. 回到“External Tools Configurations”視窗,在“Working Directory:”欄位輸入:
    ${project_loc}
    並在“Arguments:”欄位輸入:
    bake
  6. 按一下右下角的“Apple”按鈕儲存指令,然後按一下“Run”按鈕執行腳本試看看。如果cake bake有執行的話,應該可以在下方的“Console”分割視窗看到輸出提示。現在只是測試腳本,還不要輸入任何項目,請按“Console”分割區右上方的紅色方塊停止cake bake腳本:
  7. 設定好之後,就可以在“Run > External Tools”選單下看到“bake”指令:
CakePHP 模版 .ctp 檔案編輯
跟CakePHP 1.1 版的模版檔案是 .thtml ,1.2版的模版檔案是 .ctp ,內容都是PHP或HTML的程式碼。但由於Aptana不認得 .ctp ,得要手動設定它跟PHP編輯器的關聯。方法如下:
  1. 從“Aptana Studio”選單下選擇“偏好設定(Preferences...)”:
  2. 從“Preferences”視窗的側邊欄找到的“General > Content Tpyes”,然後點一下右邊的“PHP Content Type”,然後按一下“Add”按鈕:
  3. 在“Content Type”欄位輸入 .ctp ,然後按“OK”:
  4. 接下來設定編輯器的關聯。在側邊欄找到的“General > Editor >File Associations”,然後按一下右邊的“Add”按鈕:
  5. 在“File Type”欄位輸入 .ctp ,然後按“OK”:
  6. 回到“Preferences”視窗,在右下方的“Associated editors:”欄位,點一下“PHP Editor”圖示,然後按一下“Default”按鈕儲存為預設值。最後再按“OK”關閉視窗。

  7. 以後 .ctp 檔案就會自動以PHP editor來編輯。
接下來就可以準備烤第一塊蛋糕了。

沒有留言:

張貼留言