导读:今天编程笔记来给各位分享关于php如何判断质量的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览:1、「编程工具」控制台查看 PHP 质量 PHP Insig
导读:今天编程笔记来给各位分享关于php如何判断质量的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
1、「编程工具」控制台查看 PHP 质量 PHP Insights
2、有什么PHP代码质量检查工具
3、php 中怎么判断 汉字字符串中是否有这个汉字? 如 $a="空气质量非常好"; $b="质量"; 判断 $a 中是否有$b
4、具有2年php程序开发经验 具体是指 哪些经验! 2年php开发一般达到 什么水平 如何判断自己的php 水平?
5、php unit怎么测试为质量
6、如何提高PHP代码的质量
「编程工具」控制台查看 PHP 质量 PHP Insights
PHPInsights 旨在帮助开发者分析 PHP 项目的代码质量,它简化了代码分析的过程,可直接在终端运行。( 要求: PHP 7.2+ )
特性
安装和使用
要求: PHP 7.2+
首先使用 Composer 包管理器安装 PHP Insights:
然后使用 phpinsights 执行文件:
在 Windows 下执行 bat 脚本:
Laravel 内使用
可以通过发布 config-file:
然后使用 insights Artisan 命令:
在 Symfony 中使用
创建配置文件:
然后使用 phpinsights 执行文件:
Windows:
无框架如何定制 Insights
可以通过创建并编辑如下配置文件来定制 insights
持续集成
你可以在 CI 中通过 --min-quality, --min-complexity, --min-architecture, --min-style来定义 PHP Insights
如果最小层级不可达,控制台会返回错误信息:
有什么PHP代码质量检查工具
我相信,这个只有靠人。
机器只能告诉你哪里错误,哪些地方不推荐。
但质量好坏,还得靠人才能评价。
php 中怎么判断 汉字字符串中是否有这个汉字? 如 $a="空气质量非常好"; $b="质量"; 判断 $a 中是否有$b
?php
$str = '空气质量非常好';
preg_match("/质量/",$str,$r1);//存在的情况
preg_match("/大学/",$str,$r2);//不存在的情况
var_dump($r1);//存在的情况输出
var_dump($r2);//不存在的情况输出
?
具有2年php程序开发经验 具体是指 哪些经验! 2年php开发一般达到 什么水平 如何判断自己的php 水平?
2年的开发经验不包括入门学习过程。指的是有大概2年的完整PHP项目制作经历。
2年php开发经验水平至少:
能在Linux或Windows Server Edition下熟练配置PHP运行环境
能掌握正则表达式(这个很重要)、mysql数据库、文件与目录操作、COOKIE/SESSION
至少熟悉一种中型PHP框架(如ThinkPHP)
会使用至少一种成熟的CMS系统(如PHPCMS、DedeCMS、JOOMLA、Wordpress)
熟悉某种项目管理模式
不求精通但至少熟悉HTML、CSS、Javascript,还有AJAX
知道如何防止mysql注入、会使用验证码
最好还要掌握若干技巧,如:
利用SMTP发送邮件、用Curl或其他方式跨域读取文件、熟悉用JSON传送/保存数据
php unit怎么测试为质量
PHPUnit是一个用PHP编程语言开发的开源软件,是一个单元测试框架。PHPUnit由Sebastian Bergmann创建,源于Kent Beck的SUnit,是xUnit家族的框架之一。本文将探索PHPUnit,特别介绍自动化单元测试的基本用法。你需要掌握PHP编程语言的基本知识才能继续。
介绍
单元测试是对单独的代码对象进行测试的过程,比如对函数、类、方法进行测试。单元测试可以使用任意一段已经写好的测试代码,也可以使用一些已经存在的测试框架,比如JUnit、PHPUnit或者Cantata++,单元测试框架提供了一系列共同、有用的功能来帮助人们编写自动化的检测单元,例如检查一个实际的值是否符合我们期望的值的断言。单元测试框架经常会包含每个测试的报告,以及给出你已经覆盖到的代码覆盖率。
heiing
heiing
翻译于 4年前
5人顶
顶 翻译得不错哦!
安装
PHPUnit 通常以 PEAR 包,Composer bundle 或是 PHAR 文件形式存在。如果你要安装它,你需要先安装 PHP Code Coverage 依赖。在 PEAR 中,你需要天价 phpunit.de 频道,并通过命令行安装两个包:
PHP Unit Testing with PHPUnit
(注意,在输入时,默认的 XAMPP 的 PEAR 安装已经被破坏:你需要在尝试上面代码之前先安装 PEAR PHAR)。
测试一个简单的类
试试只有单一方法的简单类:
class TruthTeller
{
public function() tellTruth
{
return true;
}
}
是的,现在 tellTruth 方法总是返回 TRUE,那么我们应改怎么通过单元测试确保今后它的返回值不变?
K6F
K6F
翻译于 4年前
4人顶
顶 翻译得不错哦!
使用PHPUnit,每组测试是PHPUnit_Framework_TestCase类的一个扩展类,它提供了常用的功能,如判断。下面是一个对上述tellTruth方法的一个基本测试:
require_once 'PHPUnit/Autoload.php';
require_once 'TruthTeller.class.php';
class TruthTester extends PHPUnit_Framework_TestCase
{
function testTruthTeller()
{
$tt = new TruthTeller();
$this-assertTrue($tt-tellTruth());
}
}
请注意,您需要包括PHPUnit的自动加载器和“被测对象”,在这种情况下的TruthTeller类文件。
我们用剩余的代码要做的就是判断,如果tellTruth方法被调用时,它将返回true。这些判断是PHPUnit的核心 - 它们将决定一个测试是通过还是失败。
Holiday_
Holiday_
翻译于 4年前
2人顶
顶 翻译得不错哦!
如果你启动了命令行提示,切换到你的测试所在目录,运行 phpunit TruthTester (参数是你的测试文件名,去除 .php 扩展名),PHPUnit 将会运行文件中指定的所有它能找到的测试(测试将是名字以 test 开头的所有方法)。
PHP Unit Testing with PHPUnit
如果你回到 TruthTeller 类,并将其方法的返回值改为 FALSE,你讲看到类似下面的信息:
PHP Unit Testing with PHPUnit
这就是单元测试的核心——编写断言并判断是否通过。当先前编写并测试通过的代码开始无法通过时,你就知道有更改的代码对现有代码起了负面影响。
在现实中,你肯定需要处理比上一个更复杂的情况。比如一个常见的测试是检查下面的outputArray方法是否返回了一个特定数据结构的数组。
class ArrayTeller
{
public function outputArray()
{
return array(1,2,3);
}
}
对此方法的一个简单测试可以这样写:
class ArrayTester extends PHPUnit_Framework_TestCase
{
function testArrayTeller()
{
$at = new ArrayTeller();
$result = $at-outputArray(1);
$this-assertInternalType("array", $result);
$this-assertCount(3, $result);
$this-assertEquals(1, $result[0]);
$this-assertEquals(3, $result[2]);
}
}
如你所见,使用PHPUnit进行单元测试时可以在每一行进行多样化的检查:可以检查ArrayTeller返回的是否是一个数组,而非任何其他数据类型;可以检查数组的长度;可以检查数组中的单个值。除这些外,还有其它一些功能的断言,比如如果你需要更复杂的判断,假设要知道一个返回值是否处于两个整数的区间内,只要你能用一个IF语句的结果来表述,你就可以用断言assertTrue来测试结果。可点击随后链接来访问PHPUnit官网文档中的所有可用断言列表,。
单元测试片面的讲就是编写覆盖被测方法所有预期行为的测试,最好基于规范文档,不过如果你在编写覆盖现有代码的单元测试,将其视为白盒测试的一种形式更有用。如果你知道一个如下的简单切换方法:
class Switcher
{
public function aOrB($switch, $a, $b)
{
if ($switch == TRUE)
{
return $a;
}
else
{
return $b;
}
}
}
… 你就知道需要编写两个测试,分别针对一种情形。但你开始质疑你是如何知道这些的——如果以后方法变为 True 返回 $a,False 返回 $b,其它情形抛出一个异常,理想情况是规范文档中的某处有提及。无论如何,上面方法的测试如下:
class SwitcherTester extends PHPUnit_Framework_TestCase
{
function testSwitchTrue()
{
$switcher = new Switcher();
$result = $switcher-aOrB(TRUE, 1, 2);
$this-assertEquals(1, $result);
}
function testSwitchFalse()
{
$switcher = new Switcher();
$result = $switcher-aOrB(FALSE, 1, 2);
$this-assertEquals(2, $result);
}
}
运行两个测试同在命令行运行 phpunit SwitcherTester 一样简单。
K6F
使用 setUp,简化多个测试
当你的测试需要覆盖越来越多的输入组合及数据设置时,使用函数: setUp 将会非常有帮助。setUp 是 PHPUnit_Framework_TestCase 类中你可以覆写以在类中所有及每个测试运行前运行的代码。(注意,还有一个简单的方法,tearDown,它会在所有测试结束后立即运行——这对关闭 socket 及文件指针很有帮助)
下面是如何精简代码的一个简单的例子。尝试一个依赖一些对象数据何输入的方法。
class DataTeller
{
private $data;
public function __construct($data)
{
$this-data = $data;
}
public function outputData($switch)
{
if ($switch == TRUE)
{
if (!empty($this-data))
return $this-data;
else
return FALSE;
}
else
{
return "switch off";
}
}
}
如果你继续之前幼稚的方法,我们需要编写三个测试,并实例化三个 DataTeller 对象,每个测试一次。然而,通过 setUp,我们可以讲对 DataTellers对象的创建外包,至少是3个中的两个。只有最后一个测试需要新的 DataTeller 被创建。
class DataTellerTester extends PHPUnit_Framework_TestCase
{
private $dt;
protected $data = "valid data";
function setUp()
{
$this-dt = new DataTeller($this-data);
}
function testOutputArraySwitchOff()
{
$this-assertEquals("switch off", $this-dt-outputData(FALSE));
}
function testOutputArraySwitchOn()
{
$this-assertEquals($this-data, $this-dt-outputData(TRUE));
}
function testOutputArrayEmptySwitchOn()
{
$new_dt = new DataTeller("");
$this-assertEquals(FALSE, $new_dt-outputData(TRUE));
}
}
PHPUnit使用断言来告诉你你所测试的代码是否如你预期那样工作。学到这里,你现在应该已经可以写一些简单的测试来覆盖一些功能相对比较独立的类了。但当要测试一些互相有交互操作的类时,就要面对真正的挑战了。为此,请收听下一次讲解,学习如何为静态类写测试,以及如何使用 mock(模拟对象)和 stubs(存根,桩点)来孤立你要测试的对象与其所在环境中其他代码的联系。
如何提高PHP代码的质量
首先查找指定的php包含路径, 然后查找当前目录.
因此会检查过多路径.
如果该脚本被另一目录的脚本包含, 它的基本目录变成了另一脚本所在的目录.
另一问题, 当定时任务运行该脚本, 它的上级目录可能就不是工作目录了.
结语:以上就是编程笔记为大家介绍的关于php如何判断质量的全部内容了,希望对大家有所帮助,如果你还想了解更多这方面的信息,记得收藏关注本站。