自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

利用PDT在Eclipse中調(diào)試PHP應(yīng)用實(shí)例

開(kāi)發(fā) 后端
本文介紹如何利用PDT在Eclipse中調(diào)試PHP應(yīng)用的實(shí)例。Eclipse中提供了PHP Development Toolkit(以下簡(jiǎn)稱(chēng)PDT)幫助使用Eclipse的開(kāi)發(fā)者進(jìn)行PHP應(yīng)用的開(kāi)發(fā),但是聯(lián)機(jī)調(diào)試PHP應(yīng)用卻并不容易。

時(shí)下,Eclipse作為最流行的集成開(kāi)發(fā)環(huán)境之一,廣受開(kāi)發(fā)者尤其是Java開(kāi)發(fā)者的青睞,51CTO也為讀者們做過(guò)一次“Eclipse到底是個(gè)什么玩意”的連載。在連載中51CTO除了介紹Eclipse對(duì)Java開(kāi)發(fā)的支持,在第二部當(dāng)中還提到Eclipse提供了PHP Development Toolkit(以下簡(jiǎn)稱(chēng)PDT),幫助使用Eclipse的開(kāi)發(fā)者進(jìn)行PHP應(yīng)用的開(kāi)發(fā),但在PDT中,調(diào)試PHP應(yīng)用,尤其是聯(lián)機(jī)調(diào)試PHP應(yīng)用卻并不容易,碰巧在sMash開(kāi)發(fā)過(guò)程中找到了一些聯(lián)機(jī)調(diào)試的方法,在這里分享給大家。

準(zhǔn)備工作

要通過(guò)Eclipse開(kāi)發(fā)調(diào)試PHP應(yīng)用,當(dāng)然Eclipse的開(kāi)發(fā)環(huán)境是少不了的,在這里可以下載到Eclipse for PHP Developers。另外,如果采用sMash進(jìn)行PHP的開(kāi)發(fā)調(diào)試,需要先下載WebSphere sMash DE 并解壓到sMash的安裝目錄。以下是下載地址http://www.projectzero.org/sMash/1.1.x/download/然后,在Eclipse中通過(guò)以下站點(diǎn),更新WebSphere sMash feature for PDT 2.0.x https://www.projectzero.org/zero/indy.dev/latest/update/zero.eclipse.php/

安裝WebSphere sMash feature for PDT 2.0.x后,需要在Eclipse的preference中(點(diǎn)擊菜單Window -> Preferences便可進(jìn)入)指定WebSphere sMash的安裝目錄(如圖中的E:\apps\zero)

  

#p#

通過(guò)sMash進(jìn)行調(diào)試

WebSphere sMash是一套Web應(yīng)用程序的開(kāi)發(fā)和運(yùn)行環(huán)境,sMash中攜帶的P8運(yùn)行時(shí)能支持PHP應(yīng)用程序的運(yùn)行,同時(shí)sMash為Eclipse提供的sMash開(kāi)發(fā)環(huán)境也能很好的支持PHP應(yīng)用程序的開(kāi)發(fā)調(diào)試。我認(rèn)為通過(guò)sMash開(kāi)發(fā)調(diào)試PHP應(yīng)用能帶來(lái)三個(gè)好處:

PHP項(xiàng)目直接依賴(lài)于sMash運(yùn)行環(huán)境,啟動(dòng)PHP項(xiàng)目就啟動(dòng)了sMash的Web服務(wù)器,不再需要應(yīng)用部署的過(guò)程。

P8運(yùn)行時(shí)自身攜帶PHP調(diào)試器,無(wú)需擴(kuò)展就能支持PHP應(yīng)用的聯(lián)機(jī)調(diào)試。同時(shí)P8支持最新的Java運(yùn)行時(shí),PHP開(kāi)發(fā)者不僅能調(diào)用PHP擴(kuò)展庫(kù)中提供的功能也能方便地調(diào)用Java類(lèi)庫(kù)中的豐富功能。

sMash項(xiàng)目以組件化的方式組織項(xiàng)目依賴(lài),能以組建化的方式開(kāi)發(fā)PHP應(yīng)用,同時(shí),由于sMash已在多個(gè)公共云和私有云服務(wù)上提供鏡像,可以將PHP等腳本開(kāi)發(fā)應(yīng)用引入云計(jì)算。

不過(guò),因?yàn)镻8運(yùn)行時(shí)并非支持所有的PHP擴(kuò)展,所以一些非常用的PHP擴(kuò)展庫(kù)可能無(wú)法再sMash上運(yùn)行。

要在sMash上調(diào)試PHP應(yīng)用,首先需要在Eclipse中新建一個(gè)WebSphere sMash PHP application項(xiàng)目,第一次創(chuàng)建sMash PHP項(xiàng)目時(shí),由于sMash需要從遠(yuǎn)程的repository中下載p8 php runtime,所以需要等待一段時(shí)間。

 

完成項(xiàng)目創(chuàng)建后可以看到如下目錄結(jié)構(gòu)

 

 config/php.ini中可以配置p8運(yùn)行時(shí)的PHP擴(kuò)展庫(kù)
所有的PHP頁(yè)面都應(yīng)存放在public目錄下,public目錄下的所有文件都可以按照web url的方式在sMash應(yīng)用服務(wù)器上進(jìn)行訪問(wèn)。

在public目錄下,可以創(chuàng)建一個(gè)演示用的php頁(yè)面helloworld.php,文件內(nèi)容如下:

  1. <html> 
  2. <body> 
  3. <form method="POST"> 
  4. <label>Name:</label> 
  5. <input type="text" name="name"></input> 
  6. <input type="submit" name="submit" value="Submit"></input> 
  7. </form> 
  8. <p> 
  9. <?php   
  10. if(isset($_POST['submit']))  
  11. {  
  12.  $name = $_POST['name'];  
  13.  if(!empty($name)){  
  14.  echo "Hello $name! ";  
  15.  }else{  
  16.  echo "Hello World! ";  
  17.  }  
  18. }  
  19. echo "Welcome to WebSphere sMash.";  
  20. ?> 
  21. </p> 
  22. </body> 
  23. </html> 

雙擊php代碼段的第一行設(shè)置斷點(diǎn),右鍵單擊php項(xiàng)目testphp,選擇Debug As -> WebSphere sMash Application,就可以啟動(dòng)sMash服務(wù)器,并在sMash上調(diào)試該應(yīng)用程序。

#p#

按照默認(rèn)設(shè)置,sMash會(huì)監(jiān)聽(tīng)8080端口上的請(qǐng)求,并轉(zhuǎn)發(fā)給testphp進(jìn)行處理。可以通過(guò)http://localhost:8080/helloworld.php 來(lái)訪問(wèn)上文新建的php頁(yè)面。在訪問(wèn)頁(yè)面的同時(shí),Eclipse會(huì)進(jìn)入sMash的Debug Perspective,由此就可以像在eclipse中調(diào)試Java Application一樣調(diào)試sMash PHP應(yīng)用程序,所有的運(yùn)行狀態(tài)都會(huì)反映在Debug Perspective中的各個(gè)視圖中。Debug視圖中可以看到PHP調(diào)用的Stack Trace以及運(yùn)行的線程,Variables視圖中羅列了當(dāng)前運(yùn)行狀況下的變量信息,PHP編輯器中是當(dāng)前運(yùn)行的代碼信息。

 

通過(guò)xdebug進(jìn)行調(diào)試

由于PHP.net上提供的PHP運(yùn)行時(shí)沒(méi)有調(diào)試功能,因此如果需要在此運(yùn)行時(shí)上調(diào)試PHP應(yīng)用,則需要通過(guò)第三方擴(kuò)展庫(kù)進(jìn)行。Eclipse for PHP Developers集成對(duì)xdebug的支持,因此推薦在php.net提供的運(yùn)行時(shí)上安裝xdebug然后通過(guò)eclipse進(jìn)行調(diào)試。當(dāng)然如果還沒(méi)有安裝php.net運(yùn)行時(shí),必須先安裝Apache HTTP Server和php.net提供的PHP運(yùn)行時(shí)。

要安裝xdebug擴(kuò)展,需要先獲取php運(yùn)行時(shí)的信息。創(chuàng)建一個(gè)test.php文件,內(nèi)容如下:

  1. <?php phpinfo();?> 
  2.  

將test.php放在php運(yùn)行時(shí)所在的http服務(wù)器上,訪問(wèn)test.php頁(yè)面可以得到php運(yùn)行時(shí)的信息。

復(fù)制頁(yè)面,并將信息粘貼至此URL http://xdebug.org/find-binary.php 頁(yè)面中的文本框。點(diǎn)擊Analyse my phpinfo() output。就可以獲得根據(jù)php運(yùn)行時(shí)信息所生成的安裝指南,根據(jù)安裝指南,下載xdebug并設(shè)置完成php.ini,重啟http服務(wù)器,xdebug就可以運(yùn)作了。

 

用xdebug調(diào)試需要新建PHP項(xiàng)目。

#p#

 

創(chuàng)建完項(xiàng)目就可以在項(xiàng)目中,新建PHP頁(yè)面并設(shè)置斷點(diǎn)。通過(guò)右鍵點(diǎn)擊PHP文件,選擇Debug As -> Debug Configuration就可以開(kāi)始配置調(diào)試器

 

新建一個(gè)PHP Web Page類(lèi)別的配置,選擇XDebug作為調(diào)試器,并選擇服務(wù)器,圖中的Default PHP Web Server是localhost。選擇需要調(diào)試的php頁(yè)面和在服務(wù)器端的位置。點(diǎn)擊Debug,就可以通過(guò)訪問(wèn)在服務(wù)器上的php頁(yè)面開(kāi)始調(diào)試。因?yàn)镋clipse沒(méi)有PHP頁(yè)面的部署功能,因此需要開(kāi)發(fā)者自己復(fù)制項(xiàng)目中的PHP頁(yè)面到服務(wù)器端,并且確保服務(wù)器端的頁(yè)面和Eclipse項(xiàng)目中的PHP頁(yè)面的一致性。

下圖就是Eclipse中的PHP Debug Perspective,其中的各個(gè)視圖顯示PHP代碼的運(yùn)行狀態(tài)。

【編輯推薦】

  1. Eclipse倒地是個(gè)什么玩意
  2. Eclipse 3.6——Java開(kāi)發(fā)者的新選擇
  3. Eclipse 3.6版本正式發(fā)布 代號(hào)“太陽(yáng)神”
  4. Eclipse 3.6新特性與應(yīng)用詳解
責(zé)任編輯:佚名 來(lái)源: developerWorks
相關(guān)推薦

2009-06-02 10:02:50

eclipse jboeclipse jbojboss for e

2009-06-17 17:44:41

Eclipse插件Sp

2009-02-04 09:04:58

EclipsePDT層次試圖

2020-03-07 18:51:11

EclipseFedoraPHP

2010-06-12 16:41:10

BlackBerry開(kāi)

2009-06-02 15:20:16

eclipse tomtomcatplugitomcatplugi

2009-12-02 19:51:54

PHP Switch語(yǔ)

2010-11-25 10:05:22

Visual StudSilverlightWCF

2009-05-27 14:31:53

NetBeansEclipsPHP

2015-07-02 14:38:44

2009-06-05 14:59:31

Eclipse中配置T

2011-09-13 17:44:00

Eclipse And

2009-09-11 13:03:48

Scope屬性

2009-06-10 16:19:33

Eclipse開(kāi)發(fā)PH

2012-06-08 09:28:15

EclipseScalaAndroid

2009-11-26 10:48:59

PHP驗(yàn)證碼

2019-07-18 11:00:45

自動(dòng)化運(yùn)維測(cè)試

2023-09-28 11:42:15

2010-06-17 10:22:47

PHP

2012-05-02 11:21:41

Eclipse調(diào)試Ant
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)