`
duoerbasilu
  • 浏览: 1482002 次
文章分类
社区版块
存档分类
最新评论

PHP xdebug eclipse subversion SVN phpunit xmapp 企业级团队开发环境搭建 集成单元测试 花样调试 版本控制 张迅雷原创 欢迎转载

 
阅读更多

经常在博客见到一个争论不休的话题——到底该不该学php?是学java、donet还是php?本文不讨论PHP、JSP、ASP.NET/ASP 孰优孰劣,有那功夫劲,还不如搭建个环境动手试试,毕竟存在即道理,百度、腾讯、新浪、搜狐、淘宝、迅雷都有用到php,那么说明php还是有生命力的,市场给予了它更多的期待。张迅雷原创PHP企业级团队开发最佳环境 欢迎转载与交流

搭建php开发环境有很多种方式,常见的有如下两种:

LAMP:linux、apache、mysql、php

WAMP :windosw、apache、mysql、php

本文以WAMP架构的开发环境为背景讲解,请下载以下软件做为准备:XAMPP集成安装包、eclipse 、subversion、PDT、SVN服务端(用svn或者visualSVN。

1 安装XAMPP安装包

在windows系统下XAMPP安装过程很简单,基本上点击下一步即可,我测试的时候下载的是最新的安装包,xampp-win32-1.7.7-VC9-installer.exe 发现安装完成后出现了网上很多网友反映的apache服务无法启动的现象,既然是vc9的错误提示,肯定和windows存在着裙带关系,于是下载vcredist_x86.exe 安装后解决了apache服务无法启动的问题,1.7.7前面的版本不存在这个问题。

2xdebug的配置

编辑php.ini文件配置相关扩展。
找到“implicit_flush = Off”,将它改为“implicit_flush = On”。
找到“zend_extension”,将php_xdebug.dll前面的分号;去掉。

如:zend_extension = "f:\xampp\php\ext\php_xdebug.dll"。
找到以下各条,分别去掉;并改成如下显示的配置:
xdebug.profiler_enable=1

xdebug.profiler_output_dir="f:\xampp\tmp"xdebug.

remote_enable=true

xdebug.remote_host=127.0.0.1

xdebug._remote_port=9000

xdebug.remote_handler=dbgp

重启apache服务之后,再次查看phpinfo()搜索“xdebug support”,已经enable,xdebug.remote_enable等参数也已经正确配置则说明配置成功。

3 安装eclipse

下载安装Java(JRE或JDK):http://www.java.com

下载pdt: PDT有多个版本,具体下载哪个版本呢,其实都可以。
a. 在Zend 官方下载windows系统下安装的all in one pdt安装包(zend-eclipse-php-helios-win32-x86.zip):Windows 32 bit (184M-包含php zend debugger). –如果要启用zend debugger则使用该版本。
b. 在eclipse 官网下载PDT:Eclipse PDT 2.2.0 All In Ones,All-In-One Windows 32-bit。(在这里下载的pdt all in one 并不包含debugger,必须另外下载php 调试工具,如PDT and Zend Server Community EditionXDebug)。–XAMPP已经自带集成了和php版本配套的xdebug(C:\xampp\php\ext\php_xdebug.dll),因此不用再去xdebug.org下载。这个下载版本适合于安装完xampp后的配置,也就是本文用到的下载版本。
c. 已经安装了eclipse,安装pdt插件即可:打开eclipse:Help-> Software Updates-> Find and Install,选择“Search for new features to install”然后点击next,创建一个远程网址:Name: PDT;URL:http://downloads.zend.com/pdt,点击next开始安装pdt。
d. 也可以从Galileo的升级站点安装PDT 2.1,菜单中依次选择Help-》Install new sofeware-》Galileo Update Site –http://download.eclipse.org/releases/galileo/-》type filter text 输入pdt-》Programming Language中勾选PHP development tool sdk feature
Helios或其他版本,其他pdt安装方法可参考:PDT安装

e Eclipse安装设置工作区
Eclipse pdt下载完毕,解压到目标目录如D:盘符。解压后点击eclipse.exe安装Eclipse,设置默认的workspace,这里设置为XAMPP的网站根目录,如f:\xampp\htdocs。

F 配置Eclipse编码和换行符
在Windows系统下开发的项目代码需要设置换行符才能在linux服务器上使用。设置Window -> Preferences -> General ->选择Workspace。设置Text file encoding为Other/UTF-8,New text file line delimiter设置为other/Unix。如下图所示:


g Eclipse新建php项目
转到File->New->PHP Project,有两个选项:
create new project in workspace。首先可以在工组区(f:\xampp\htdocs)内新建php项目,如project name设置为php_dev,则在xampp根目录下会新建一个php_dev目录。若要为工作区内已经存在的目录新建php项目,则project name 必须和二级目录名相同,如要设置xampp目录为一个php项目,project name 也必须为xampp。
create project at existing location (from existing source),若选择该选项新建php项目,则directory不能在工作区内,必须是工作区以外的目录路径。否则会出现类似错误提示:Create a php project:Cannot create project content in workspace。问题出现的原因是在eclipse中,工作区workspace和项目project是两个完全独立的概念,Workspace给新建的project提供了一个默认位置,但是项目路径不能包含工作区在里面,项目也不一定非得在workspace中。因此可以在f:\xampp \htdocs下创建新的project,也可以在其他系统路径下建立新的项目。
h Eclipse配置Xdebug Eclipse 中包含zend debugger的xdebug两种php调试工具,我们这里选择xdebug。因此首先要告诉eclipse使用xdebug:Window -> Preferences->php->Debug->Default settings->php debugger 选择xdebug。“Break at first line”勾选上,表示php调试时会在第一行暂停。如下图所示:
点击OK,如果出现the debugger port you requested 9000 is already in use的错误提示,则要修改XDebug的端口设置,点击上图中的XDebug右边的Configure,在新窗口中设置重新设置Xdebug的端口(debug port)为其他的,如10000等。同时在php.ini配置中也要将xdebug.remote_port=9000改成一致的端口。
然后设置XDebug的选项,在上图左侧树形菜单中,点击Debug下面的Workbench Options,设置allow multiple debug sessions为Never,使每次调试只能打开一个会话;设置Switch back to PHP perspective when the debug is terminated终止调试时自动跳转回到php代码编辑视图页面。
i XDebug调试PHP文件
选中php文件右键Debug as php web page,或打开php文件点击菜单Run->Debug(F11)。设置点击Debug后自动跳转到PHP Debug 视图,设置:Window -> Preferences->Run/Debug->Perspectives->选择PHP Web Page->”Open the associated perspective when launching”选择”Always”。
Eclipse调试过程若出现: Launching: Waiting for XDebug session.暂停在57%不动。一般是端口被其他程序占用,将端口10000 改回9000,同时php.ini中xdebug.remote_port也改回9000。下图是eclipse php XDebug调试的工具栏:
Resume重置,Terminate终止,Step Into执行调用函数,Step Over跳过执行下一行。
j Eclipse安装Subversion(SVN)插件

SubclipseEclipse 的一个很大的优点是可以使用它进行PHP项目代码的版本控制,如安装Eclipse Subversion (SVN)插件Subclipse。在 Eclipse 的 “Help” 菜单中选择Install New Software 打开更新管理器。work with 右侧点击Add… 添加新的可用软件。随便输入名称,地址Location填上http://subclipse.tigris.org/update_1.6.x,如下图所示:
点击OK,pending..一会之后在新窗口中勾选3个库安装包(Core SVNKit Library、Optional JNA Library、Subclipse)共9项。然后点击next->next,选择I accept the terms of the license agreements。自动下载相关文件并安装,安装过程会出现如下警告信息:
"Warning: You are installing software that contains unsigned content. The authenticity or validity of this software cannot be established. Do you want to continue with the installation?"这是Eclipse提示Subclipse没有数字签名,点击OK继续安装。SVN插件Subclipse就安装完成后会提示重启Eclipse。重启Eclipse之后,点击菜单中的File >Import>SVN>会发现Checkout Projects from SVN(从SVN检出项目),证明Subclipse插件安装成功。

4 SVN 的配置

安装Subversion或者visaul SVN

一、Subversion 检出项目
File ->Import->SVN->Checkout Projects from SVN->创建新的资源库位置>选择新建位置,输入http://subclipse.tigris.org/svn/subclipse /->输入用户名和密码(用户名guest,密码为空,选中保存密码)->比如选择trunks下面的subclipse子文件夹-> 可以选择“Check out as a project in the workspace”(作为工作区项目检出)或“Check out as a project configured using the New Project Wizard”(使用新建项目配置向导),这就和手工新建项目差不多。
另外比如Joomla1.5版本的svn资源库地址是http://joomlacode.org/svn/joomla/development/releases/1.5。使用anonymous为用户名,密码为空。可以将SVN源码检出本地安装和测试。
二、Subversion共享项目:
在navigator菜单选中已经建立了项目名称,右键Team->Share preject…(小组>共享项目)。下一步选择SVN,Next->Use exsiting repository location(使用已有资源库位置:若没有创建可以参考上面的方法)->选择新项目导入到subversion服务器的文件库进行版本控制。Subversion 的命令和输出结果显示在 Eclipse Console 视图中,可以查看Subversion执行的过程。
三、Subversion 其他操作
Eclipse中subversion的其他操作包括更新(team->update)、添加/删除文件/目录、重命名、提交更改(team->commit)、合并、修补(team->apply patch)、比较等等操作,不在敷述。

5 PHPUNIT的集成

写一个类

<?php

class HelloUnit

{

public function add($a, $b)

{

return $a + $b;

}

}

再写一个含有断言的测试类:

<?php

require_once 'PHPUnit/Framework/TestCase.php';

require_once 'HelloUnit.php';

class ReflectionUtilsTestextendsPHPUNIT_Framework_TestCase

{

functiontestAdd()

{

$_helloUnit = newHelloUnit();

$this->assertEquals(3, $_helloUnit->add(1, 2));

}

}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics