如何提高php代码质量的方法总结

介绍

这篇文章主要介绍”如何提高php代码质量的方法总结”,在日常操作中,相信很多人在如何提高php代码质量的方法总结问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答“如何提高php代码质量的方法总结”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

<强> 1。不要使用相对路径
常常会看到:
require_once (& # 39; . ./. ./lib/some_class.php& # 39;);
该方法有很多缺点:
它首先查找指定的php包含路径,然后查找当前目录。
因此会检查过多路径。
如果该脚本被另一目录的脚本包含,它的基本目录变成了另一脚本所在的目录。
另一问题,当定时任务运行该脚本,它的上级目录可能就不是工作目录了。
因此最佳选择是使用绝对路径:
定义(& # 39;根# 39;& # 39;/var/www/项目/& # 39;);
require_once(根。& # 39;. ./. ./lib/some_class.php& # 39;);
//
剩下的代码我们定义了一个绝对路径,值被写死了。我们还可以改进它。路径/var/www/project也可能会改变,那么我们每次都要改变它吗?不是的,我们可以使用__FILE__常量,如:
///var/www/project/index.假设你的脚本php
//然后__FILE__总有完整路径。
定义(& # 39;根# 39;pathinfo (__FILE__ PATHINFO_DIRNAME));
require_once(根。& # 39;. ./. ./lib/some_class.php& # 39;);
//
其他代码现在,无论你移到哪个目录,如移到一个外网的服务器上,代码无须更改便可正确运行。
<强> 2。不要直接使用,包括include_once, required_once
可以在脚本头部引入多个文件,像类库,工具文件和助手函数等,如:
require_once (& # 39; lib/Database.php& # 39;);
require_once (& # 39; lib/Mail.php& # 39;);
require_once(& # 39;助手/utitlity_functions.php& # 39;);
这种用法相当原始。应该更灵活点。应编写个助手函数包含文件。例如:
函数load_class (class_name美元)
{
//路径类文件
$ path=根。& # 39;/lib/& # 39;。class_name美元。& # 39;。php # 39;);
require_once(路径)美元;
}
load_class(& # 39;数据库# 39;);
load_class(& # 39;邮件# 39;);
有什么不一样吗?该代码更具可读性。
將来你可以按需扩展该函数,如:
函数load_class (class_name美元)
{
//路径类文件
$ path=根。& # 39;/lib/& # 39;。class_name美元。& # 39;。php # 39;);
如果(file_exists(路径)美元)
{
require_once(路径);
}
}
还可做得更多:
为同样文件查找多个目录
能很容易的改变放置类文件的目录,无须在代码各处一一修改
可使用类似的函数加载文件,如html内容。
<强> 3。为应用保留调试代码
在开发环境中,我们打印数据库查询语句,转存有问题的变量的值,而一旦问题解决,我们注释或删除它们。然而更好的做法是保留调试代码。
在开发环境中,你可以:
定义(& # 39;环境# 39;& # 39;发展# 39;);如果(
!美元$ db→查询(查询)
{
如果(环境==& # 39;发展# 39;)
{
回声“查询failed"美元;;其他
}

{
回声“数据库错误。请联系administrator";
}
}
在服务器中,你可以:
定义(& # 39;环境# 39;& # 39;生产# 39;);如果(
!美元$ db→查询(查询)
{
如果(环境==& # 39;发展# 39;)
{
回声“查询failed"美元;;其他
}

{
回声“数据库错误。请联系administrator";
}
}
<强> 4。使用可跨平台的函数执行命令
系统,执行,passthru shell_exec这4个函数可用于执行系统命令。每个的行为都有细微差别。问题在于,当在共享主机中,某些函数可能被选择性的禁用。大多数新手趋于每次首先检查哪个函数可用,然而再使用它。
更好的方案是封成函数一个可跨平台的函数。
/* *
的方法来执行一个命令终端
用途:
1。系统
2。passthru
3。执行
4。shell_exec
*/
功能终端($命令)
{
//系统
如果(function_exists(& # 39;系统# 39;))
{
ob_start ();
系统(命令,return_var美元);
输出美元=ob_get_contents ();
ob_end_clean ();
}
//passthru
else if (function_exists (& # 39; passthru # 39;))
{
ob_start ();
passthru(命令,return_var美元);
输出美元=ob_get_contents ();
ob_end_clean ();
}
//exec
else if (function_exists (& # 39; exec # 39;))
{
exec(命令,输出,美元return_var美元);
输出美元=内爆(“\ n",输出美元);
}
//shell_exec
else if (function_exists (& # 39; shell_exec # 39;))
{
输出美元=shell_exec($命令);其他

如何提高php代码质量的方法总结