php提高代码质量方法

php提高代码质量方法

ID:17927514

大小:59.00 KB

页数:22页

时间:2018-09-10

php提高代码质量方法_第1页
php提高代码质量方法_第2页
php提高代码质量方法_第3页
php提高代码质量方法_第4页
php提高代码质量方法_第5页
资源描述:

《php提高代码质量方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、php提高代码质量方法1.不要使用相对路径常常会看到:require_once('../../lib/some_class.php');该方法有很多缺点:它首先查找指定的php包含路径,然后查找当前目录.因此会检查过多路径.如果该脚本被另一目录的脚本包含,它的基本目录变成了另一脚本所在的目录.另一问题,当定时任务运行该脚本,它的上级目录可能就不是工作目录了.因此最佳选择是使用绝对路径:define('ROOT','/var/www/project/');require_once(ROOT.'../../lib/some_class.php');

2、//restofthecode我们定义了一个绝对路径,值被写死了.我们还可以改进它.路径/var/www/project也可能会改变,那么我们每次都要改变它吗?不是的,我们可以使用__FILE__常量,如://supposeyourscriptis/var/www/project/index.php//Then__FILE__willalwayshavethatfullpath.define('ROOT',pathinfo(__FILE__,PATHINFO_DIRNAME));require_once(ROOT.'../../lib/some

3、_class.php');//restofthecode现在,无论你移到哪个目录,如移到一个外网的服务器上,代码无须更改便可正确运行.2.不要直接使用require,include,include_once,required_once可以在脚本头部引入多个文件,像类库,工具文件和助手函数等,如:require_once('lib/Database.php');require_once('lib/Mail.php');require_once('helpers/utitlity_functions.php');这种用法相当原始.应该更灵活点.应编

4、写个助手函数包含文件.例如:functionload_class($class_name){//pathtotheclassfile$path=ROOT.'/lib/'.$class_name.'.php');require_once($path);}load_class('Database');load_class('Mail');有什么不一样吗?该代码更具可读性.將来你可以按需扩展该函数,如:functionload_class($class_name){//pathtotheclassfile$path=ROOT.'/lib/'.$cla

5、ss_name.'.php');if(file_exists($path)){require_once($path);}}还可做得更多:为同样文件查找多个目录能很容易的改变放置类文件的目录,无须在代码各处一一修改可使用类似的函数加载文件,如html内容.3.为应用保留调试代码在开发环境中,我们打印数据库查询语句,转存有问题的变量值,而一旦问题解决,我们注释或删除它们.然而更好的做法是保留调试代码.在开发环境中,你可以:define('ENVIRONMENT','development');if(!$db->query($query){if(EN

6、VIRONMENT=='development'){echo"$queryfailed";}else{echo"Databaseerror.Pleasecontactadministrator";}}在服务器中,你可以:define('ENVIRONMENT','production');if(!$db->query($query){if(ENVIRONMENT=='development'){echo"$queryfailed";}else{echo"Databaseerror.Pleasecontactadministrator";}}4.

7、使用可跨平台的函数执行命令system,exec,passthru,shell_exec这4个函数可用于执行系统命令.每个的行为都有细微差别.问题在于,当在共享主机中,某些函数可能被选择性的禁用.大多数新手趋于每次首先检查哪个函数可用,然而再使用它.更好的方案是封成函数一个可跨平台的函数./**MethodtoexecuteacommandintheterminalUses:1.system2.passthru3.exec4.shell_exec*/functionterminal($command){//systemif(function_e

8、xists('system')){ob_start();system($command,$return_var);$output=ob_get_con

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。