在 Eclipse 上開發 PHP 程式(以 Moodle、EGit、PDT 為例)
最近受命必須要研究 moodle,並且希望可以用 Eclipse 這種比較聰明的 IDE 來開發,而 moodle 本身是 PHP 寫的,之前只有使用 Eclipse 開發過 Java,這篇文章只是簡單記錄怎麼讓 Eclipse 可以開發 PHP 程式,並且透過 EGit 將遠端 moodle 原始碼 clone 回來!
-
環境
先到 http://java.com 下載新版的 Java 執行環境。Eclipse 非常大,不論是檔案大小或是所需要的記憶體,記憶體建議 1GB 以上。
-
安裝Eclipse
到 Eclipse 官網 (http://www.eclipse.org/downloads/) 根據自己的環境選擇對應的 Eclipse (Windows, Linux, Mac, 64bit, 32bit),下載列表會看到很多例如:Java EE, Java, C/C++ … 等,這邊只要下載 Eclipse Classic 版本即可。
下載回來後的檔案是一個壓縮檔(看環境),解壓縮後執行 Eclipse.exe,視情況在桌面建立捷徑。
-
第一次啟動
第一次啟動會要求提供工作空間(workspace),這邊直接使用每個不同系統的預設環境就好。
-
安裝必須的插件(Plugins)
如果一開始下載的就是 Eclipse for PHP Developers 的版本,可以直接跳過此步驟。
這邊每個版本的情況會不同,參考資料1的部分無法完成,因此這邊採用參考資料2。
從上方選單「Help」->「Install New Software…」->「Work with: Juno – http://download.eclipse.org/releases/juno (註1)」-> 最下面找到「Web, XML, Java EE and OSGi Enterprise Development」
-> 勾選
Eclipse Web Developer Tools JavaScript Development Tools PHP Development Tools (PDT) SDK Feature
-> 「Next >」-> 「Next >」-> 「I accept the terms of the license agreements」-> 「Finish」-> 完成後會重新啟動 Eclipse
註1. juno 是 Eclipse 的版本名稱,不同版本下載回來後會有相對應的更新網址,這邊只要選 Eclipse 附帶的更新網址即可。
-
設定 Moodle 偏好值
參考資料1裡面的設定有些找不到,有些似乎沒那麼重要,就用著用著再慢慢去看要設定些什麼。
-
安裝 EGit
使用 Git 是為了讓往後版本控管比較容易一些,下載 Eclipse 的 EGit 插件。一樣到上方選單「Help」->「Install New Software…」->「Work with: Juno – http://download.eclipse.org/releases/juno」-> 輸入「git」
選擇 Eclipse EGit 及 Eclipse JGit,接著下一步直到完成安裝,完成安裝後系統會要求重新啟動 Eclipse。
-
使用 EGit clone 原始碼
這邊卡了一段時間,一直卡在到底是先 import project,還是先 Import Project From Git,而 Import Project From Git 後,又不允許讓他變成專案(會變成 FileSystem,而無法在 Eclipse 中使用),後來發現原來 EGit 有自己的 Perspective,包含了平常 Git 的常用功能(參考資料3),有用 Eclipse 開發過的話對這應該不陌生,像是 JavaEE, DDMS, JavaSE … 等等,只要切換到該 Perspective 裡面有就一些常用的 View 的組合。
在 Eclipse 右上角找到一個 Open Perspective 的圖案(看起來像一個視窗跟一個+符號,如下圖),選擇 Open Perspective 視窗中的 Git Repository Exploring。
在開啟的 Git Repository Exploring Perspective 中,左邊的 Git Repositories 視窗中可以看到以下畫面, 選擇 Clone a Git repository 來匯入遠端已經存在的 repository。
接著輸入遠端 repository 的連線資訊。直接填寫 URI 以外的欄位,URI 欄位會根據填寫的內容自動產生。
選擇要匯入的 Branch。
選擇要存放的路徑。
開始下載 repository 的檔案。
完成後在 Git Repositories 視窗中可以看到所有 Git Repository 的資訊及檔案。
-
將 Git Repository 中的檔案匯入成 Project
在這邊其實卡了很久,因為當時沒發現有 Git Repository Exploring Perspective,造成例如檔案會重複存在,無法 commit,無法匯入,提示目錄已存在等等的錯誤。Git Repository Exploring Perspective 也讓這些事情變得很簡單。首先在 Git Repositories 視窗中剛剛新增的 repository 點選滑鼠右鍵,選擇 Import Projects …
選擇最下面的 Import as general project。
做最後確認。
完成後,到右上角的 Perspective 切換到 PHP。
PHP Explorer 視窗中看到剛剛匯入的專案,每個檔案及資料夾右下方有一個黃黃的東西。
因為剛剛從 Git Repository 轉換成 general project(一般專案),現在要把這整個專案轉換成 PHP 專案。在專案上點選滑鼠右鍵 -> Configure -> Add PHP Support …
可以看到專案最下面已經加入了 PHP Libraries,到這邊基本的 Eclipse 開發 PHP 程式已經大功告成。
大費周章的用 Eclipse 開發的原因在於有時候變數或是 function 分散在一堆不同的檔案中,不僅除錯容易,在 trace 程式碼或是開發速度上都會有很明顯的幫助。例如:
點選 ctrl 後指向 function name 或變數,就會直接開啟該 function 或該變數所在的檔案。
function 名稱或變數也有自動補齊的功能(懶人專用)。
游標停留在 function 或變數上不動,會出現該變數或 function 說明。
至於其他 Git 操作,之後有需要再補上!
參考資料:
- Setting up Eclipse @ Moodle
http://docs.moodle.org/dev/Setting_up_Eclipse - Eclipse – 打造一個可以帶著走的 PHP IDE @ 莫希爾(Mosil)手札
http://blog.mosil.biz/2012/07/eclipse-protable-ide-for-php/ - How to import a GIT non-Eclipse Java project into Eclipse? @ stackoverflow
http://blog.mosil.biz/2012/07/eclipse-protable-ide-for-php/
感謝大大分享!是篇好文,入門開原世界鑰匙
請問蛙大:
安裝plugins時,JavaScript Development Tools 和 PHP Development Tools (PDT) SDK Feature 都沒問題,但安裝Eclipse Web Developer Tools,就會出現下列問題,這有得解嗎?
另外,網路上有人介紹PDT這套?不知道你覺得如何呢?
Cannot complete the install because of a conflicting dependency.
Software being installed: Eclipse Web Developer Tools 3.4.1.v201208170345-7O7MFsPEMkBJz0wtb-ccsarPSceUIHO9iKk6XVPV (org.eclipse.wst.web_ui.feature.feature.group 3.4.1.v201208170345-7O7MFsPEMkBJz0wtb-ccsarPSceUIHO9iKk6XVPV)
Software currently installed: Eclipse SDK 3.7.2.M20120208-0800 (org.eclipse.sdk.ide 3.7.2.M20120208-0800)
Only one of the following can be installed at once:
Core Resource Management 3.8.0.v20120522-2034 (org.eclipse.core.resources 3.8.0.v20120522-2034)
Core Resource Management 3.8.1.v20120802-154922 (org.eclipse.core.resources 3.8.1.v20120802-154922)
Core Resource Management 3.7.101.v20120125-1505 (org.eclipse.core.resources 3.7.101.v20120125-1505)
Core Resource Management 3.7.100.v20110510-0712 (org.eclipse.core.resources 3.7.100.v20110510-0712)
Cannot satisfy dependency:
From: Eclipse Platform 3.7.2.v20120207-1839-9gF7UHPDFxGjd-PqDr2jX_4yKaumkoHTz04_q-q (org.eclipse.platform.feature.group 3.7.2.v20120207-1839-9gF7UHPDFxGjd-PqDr2jX_4yKaumkoHTz04_q-q)
To: org.eclipse.core.resources [3.7.101.v20120125-1505]
Cannot satisfy dependency:
From: Eclipse Project SDK 3.7.2.r37x_v20111213-7Q7xALDPb32vCjY6UACVPdFTz-icPtJkUadz0lMmk4z-8 (org.eclipse.sdk.feature.group 3.7.2.r37x_v20111213-7Q7xALDPb32vCjY6UACVPdFTz-icPtJkUadz0lMmk4z-8)
To: org.eclipse.platform.feature.group [3.7.2.v20120207-1839-9gF7UHPDFxGjd-PqDr2jX_4yKaumkoHTz04_q-q]
Cannot satisfy dependency:
From: Eclipse SDK 3.7.2.M20120208-0800 (org.eclipse.sdk.ide 3.7.2.M20120208-0800)
To: org.eclipse.sdk.feature.group [3.7.2.r37x_v20111213-7Q7xALDPb32vCjY6UACVPdFTz-icPtJkUadz0lMmk4z-8]
Cannot satisfy dependency:
From: Eclipse Web Developer Tools 3.4.1.v201208170345-7O7MFsPEMkBJz0wtb-ccsarPSceUIHO9iKk6XVPV (org.eclipse.wst.web_ui.feature.feature.group 3.4.1.v201208170345-7O7MFsPEMkBJz0wtb-ccsarPSceUIHO9iKk6XVPV)
To: org.eclipse.wst.xml_ui.feature.feature.group [3.4.1.v201208170345-7H7GFeFDxumUpsw5rgjWnKDrsz0p4ymwjQz00T2S]
Cannot satisfy dependency:
From: WST XML Core 3.4.1.v201208170345-7C7OFm5F7RZHQRIsOz-Nz-_n (org.eclipse.wst.xml_core.feature.feature.group 3.4.1.v201208170345-7C7OFm5F7RZHQRIsOz-Nz-_n)
To: org.eclipse.wst.xsd.core [1.1.700.v201204102147]
Cannot satisfy dependency:
From: Eclipse XML Editors and Tools 3.4.1.v201208170345-7H7GFeFDxumUpsw5rgjWnKDrsz0p4ymwjQz00T2S (org.eclipse.wst.xml_ui.feature.feature.group 3.4.1.v201208170345-7H7GFeFDxumUpsw5rgjWnKDrsz0p4ymwjQz00T2S)
To: org.eclipse.wst.xml_core.feature.feature.group [3.4.1.v201208170345-7C7OFm5F7RZHQRIsOz-Nz-_n]
Cannot satisfy dependency:
From: XSD Core Plugin 1.1.700.v201204102147 (org.eclipse.wst.xsd.core 1.1.700.v201204102147)
To: bundle org.eclipse.core.resources [3.8.0,4.0.0)
Dear Evan Li:
從錯誤訊息看起來應該是在之前已經透過別的方式安裝了更新版的 Plugin 了,
下載回來的版本是 3.4.1 ,但是跟系統既有的 plugin 互相衝突,
比較好的方法是重新下載一個乾淨的 Classic Eclipse 來安裝,
像是如果要開發 Java 跟 PHP,分別下載兩個 Eclipse !!
(沒辦法 Eclipse 太容易因為一些怪怪的因素打不開,或甚至變得很肥大)
抱歉,沒辦法幫您解決 plugin 衝突的問題 ><
問題釐清,Work with: Juno – http://download.eclipse.org/releases/juno (註1)
這邊要把後面的 juno 改成自己的版本喔,像是 helios, indigo … 等等!
感謝蛙大!果然沒問題了~有問題再繼續跟你請教了