最近受命必須要研究 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 EGitEclipse 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 操作,之後有需要再補上!

參考資料:

  1. Setting up Eclipse @ Moodle
    http://docs.moodle.org/dev/Setting_up_Eclipse
  2. Eclipse – 打造一個可以帶著走的 PHP IDE @ 莫希爾(Mosil)手札
    http://blog.mosil.biz/2012/07/eclipse-protable-ide-for-php/
  3. How to import a GIT non-Eclipse Java project into Eclipse? @ stackoverflow
    http://blog.mosil.biz/2012/07/eclipse-protable-ide-for-php/
相關文章

Android Vuforia with jPCT-AE (5) – 多重模型載入,以 obj 為例

要進到這系列最後一篇文章了,這篇文章拖了很久,一直沒有時間整理,結果到最後 ... 程式碼留下來了,記憶卻有些模糊了,這邊小蛙配著程式碼盡可能的把還記得的東西寫下來。
2016-07-06 11:24:19
hans

18

Solr 教學 (3) – 以 Remote Address Filter 限制存取

前面 Solr 教學 (1) – 安
2013-10-14 23:32:54
hans

18

Solr 教學 (2) – tomcat 7 以帳號密碼限制存取頁面

接續 Solr 教學 (1) – 安
2013-10-14 22:34:34
hans

18

SSL For Free – 免費又有綠色鎖頭的 SSL Certificates

之前聽說 Google 會優先搜尋有 https 的網頁 (參考:
2016-07-07 23:00:54
hans

8

Android Vuforia with jPCT-AE (4) – 載入 3DS 測試

延續 jPCT-AE Loader 載入模型的部份,這篇要記錄載入 3ds 檔案格式的方法,基本上跟前面幾個 obj, md2 的方法差不多,只有一些小小的變化而已。
2016-07-06 10:24:33
hans

8

Android Vuforia with jPCT-AE (3) – 載入 md2 測試

前兩篇介紹如何直接透過 jPCT-AE 直接繪圖以及載入 .obj 檔案,這邊繼續介紹 jPCT-AE 載入 md2 的方法,載入動作大致上類似,唯一不同的只有 texture 設定部份。
2016-07-06 09:24:43
hans

8

Android Vuforia with jPCT-AE (2) – 載入 obj 測試

上一篇 Android Vuforia with jPCT-AE (1) –
2016-07-06 08:24:55
hans

8

Android Vuforia with jPCT-AE (1) – 基本範例

說來慚愧,從 Google Adsense 被 ban 之後,就好久沒有發文了,站上 Vuforia 的文章也已經是好久以前的事情了 (遠目),最近有專案要用到 Vuforia,爬以前的文回來看,蛙哩咧 ... 現在已經更新到 Vu
2016-07-06 07:57:58
hans

8

ClickForce (MobiForce) 當機問題

這真是個浪費時間又漫長的過程,CF 推出新版後台以及新版 SDK 的時候,小蛙就下載來測試,一開始小蛙直接套在「我的股票精算師」上,但只要一套上去就當機 ...
2015-09-02 10:32:51
hans

8




  5 則留言 to “在 Eclipse 上開發 PHP 程式(以 Moodle、EGit、PDT 為例)”

  1. 感謝大大分享!是篇好文,入門開原世界鑰匙

  2. 請問蛙大:
    安裝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 … 等等!

 回覆

你可以使用以下語法 HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="">

(required)

(required)

   
© 2012 蛙齋 Suffusion theme by Sayontan Sinha