php工具:SimpleTest,xhprof和phpxref

写php程序除了需要搭建开发环境、选择代码编辑器之外,一些工具的使用也可以帮助我们更好地开发。在这总结几个自己常用的工具。

1.单元测试

提到单元测试首先想到PHPUnit,其实SimpleTest也不错,http://www.simpletest.org/

简单的例子(下载SimpleTest后可使用下面示例):

1.Unit tester

writer.php
1
2
3
4
5
6
7
8
9
10
<?php
 
classFileWriter {
    functionwrite($a) {
        $myfile=fopen("test.txt","w")ordie("Unable to open file!");
        $txt=$a;
        fwrite($myfile,$txt);
        fclose($myfile);
    }
}
unit_test.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
 
require_once('simpletest/autorun.php');
require_once('writer.php');
 
classFileTestCaseextendsUnitTestCase {
 
    functionsetUp() {
        @unlink('test.txt');
    }
 
    functiontearDown() {
        @unlink('test.txt');
    }
 
    functiontestCreation() {
        $writer=newFileWriter();
        $writer->write('Hello');
        $this->assertTrue(file_exists('test.txt'),'File created');
    }
}

命令行或者浏览器运行“unit_test.php”可得到测试结果:

simpletest1

or

simpletest2

2.Web tester

web_test.php
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
 
require_once('simpletest/autorun.php');
require_once('simpletest/web_tester.php');
SimpleTest::ignore('WebTestCase');
 
classMySiteTestextendsWebTestCase {
 
    functiontestHomePage() {
        $this->get(' http://yourSiteUrl/index.php');
        $this->assertTitle('yourPageTitle');
    }
}

运行“web_test.php”

如果请求页面的title是“yourPageTitle”,测试通过,否则返回“fail”和详细信息。

3.Testing form

form.html
1
2
3
4
<form>
    <inputtype="text"name="a"value="A default"/>
    <inputtype="submit"value="Go"/>
</form>
form_test.php
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
 
require_once('simpletest/autorun.php');
require_once('simpletest/web_tester.php');
SimpleTest::ignore('WebTestCase');
 
classMySiteTestextendsWebTestCase {
 
    functiontestHomePage() {
        $this->get(' http://youFormUrl/form.html');
        $this->assertField('a','A default');
    }
}
运行“form_test.php”可查看结果。

几个简单的示例,更多的示例可以参照SimpleTest的官方文档:http://www.simpletest.org/en/overview.html

2.性能测试

Xdebug配合Webgrind可以比较直观地查看php的性能,优化程序,之前也用过一段时间。不过感觉性能测试还是Xhprof好,甚至可以在生产环境中通过抽样监测程序性能。

该示例在windows环境下进行:

1.下载Xhprof扩展、xhprof_html和graphviz

2.安装graphviz,安装Xhprof扩展,修改“/xhprof/config.php”

3.添加监测代码:“xhprof_enable(可选参数);”,“$xhprof_data = xhprof_disable();” ……

4.运行程序

5.查看结果

php工具:SimpleTest,xhprof和phpxref_第1张图片

php工具:SimpleTest,xhprof和phpxref_第2张图片

 

从结果可以很直观地看出程序的性能瓶颈,可以明确优化的方向。这里只是给出个简单的示例。

3.引用文档生成器

 phpDocumentor是很好的文档生成器,可以生成详细的API文档,而通过PHPXref,我们可以简单地查询一个类、方法、变量等被定义的地方和被引用的次数和引用的位置。总之给人的感觉就是“小而简”,快速得到想要的结果。

PHPXref下载地址:http://phpxref.sourceforge.net/

使用方法简单:

1下载PHPXref最新版本解压后得到phpxref-0.7.1文件夹,将php项目文件放到“phpxref-0.7.1/source/”文件夹下

2.运行“phpxref-0.7.1/phpxref”

3.从浏览器查看“phpxref-0.7.1/output/index.html”

php工具:SimpleTest,xhprof和phpxref_第3张图片

php工具:SimpleTest,xhprof和phpxref_第4张图片

图为在“class”栏查询“login”得到的结果,可以看出class login 定义于 “shop72hour/model/login.model.php”第3行,只在“shop72hour/controller/login.class.php”被引用过1次。

今天就这些了,记录只是与遗忘的小抗争!

你可能感兴趣的:(xhprof,php工具,SimpleTest,phpxref)