本文将讨论常用的良好的代码习惯,或者称为代码规范,在PHP领域。
1,错误报告开启
错误报告是在PHP中一个非常有用的功能,应同时在开发阶段启用。 这可以帮助我们确定我们的代码中的问题。 最常用的功能是“E_ALL”,这有助于我们发现所有的警告和严重错误。 必须指出的是,我们把我们的代码投入上线前,我们应该关闭这个功能提示,否则会在浏览器上的暴漏所有潜在错误及警告。
2,使用DRY原则
‘Do not Repeat Yourself',DRY原则指的是不要重复你的代码.。 这个概念是一个非常有用的编程概念,可硬应用在任何编程语言,如Java,C#或PHP均可以。 使用DRY原则,确保我们在程序中没有冗余的代码。
违反 DRY 原则的解决方案通常被称为 WET,指代“write everything twice”,我们写的相同功能的代码会出现多次以上,别大家戏称是喜欢打字。
让我们看看到下面的代码:
Listing1:
WET代码方式:
1
2
|
$mysql = mysql_connect ( 'localhost' , 'mysqladmin_uid' , 'mysqladmin_pwd' ); mysql_select_db( 'DB_NAME' ) or die ( "Sorry !! No database selected!" ); |
下面使用DRY 原则优化代码:
1
2
3
4
5
6
|
$db_host = ' localhost ' ; $db_user = ' mysqladmin_uid ' ; $db_password = ' mysqladmin_pwd ' ; $db_database = ' DB_NAME ' ; $mysql = mysql_connect( $db_host , $db_user , $db_password ); mysql_select_db( $db_database ); |
3,适当的使用缩进及空格
在使用任何一种编程语言编写代码时,必须确保代码在需要的地方提供在必要适当的缩进和足够的空格。 以增加了代码的可读性,用更有效的方式管理代码。
4,使用有意义和一致的命名标准
正如任何编程语言,PHP的老兵还建议我们遵循有意义的命名标准。 我们有两个主要方式在实现这个要求:
A.驼峰式
在这种方法中,第一个字母是小写,每一个单词的第一个字母其后以大写。
Listing2:
1
2
3
4
|
public class MyClass { public void methodName(String argName) { } } |
B.下划线式
在这种方法中,我们把每两个词之间的下划线(“_”)。 使用这种方法时,代码可以被修改如下:
Listing3:使用下划线代码片段
1
2
3
4
|
public class MyClass { public void method_name(String arg_name) { } } |
5,避免深层嵌套
使用任何开发语言,多级嵌套降低了代码的可读性。 任何开发者都应应避免使用深层嵌套。
Listing4:代码片段具有多级嵌套
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
<?php class MyClass { public function method_name( $arg_name ) { if ( is_writable ( $folder )) { if ( $fp = fopen ( $file_location_path , 'w' )) { if ( $stuff = extractSomeConditionalStuff ()) { if (fwrite ( $fp , $stuff )) { // ... } else { return false; } } else { return false; } } else { return false; } } else { return false; } } } ?> |
上面的代码是一个简单的嵌套代码。 我们可以看到它是非常困难的,如果块结束哪里的身影。 为了更好的可读性,让我们修改的代码:
Listing5:代码片段,避免多级嵌套
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
function method_name (String arg_name) { // ... if (! is_writable ( $folder )) { return false; } if (! $fp = fopen ( $file_location_path , 'w' )) { return false; } if (! $stuff = extractSomeConditionalStuff ()) { return false; } if (fwrite ( $fp , $stuff )) { // ... } else { return false; } } |
6,添加应有的注释
开发中,请确保你的源代码中有足够的行内注释。 这是一个应该遵守的标准做法。 这有助于深入分析代码,因为通常情况下,负责编码的人不会一直保持不变。 即使同一个人被要求在代码中进行一些简单的修改,行内的注释总是会有助于理解当时编写代码是用来做什么的。 为了在PHP中使用较好的注释标准,建议大家去查看一些标准的PHP文档包,例如phpDocumentor。
7,不要把PHPINFO()函数在网站根目录
phpinfo()函数是一个非常重要的功能,应小心使用。 使用此功能,任何人都可以看到服务器环境的详细信息。它最好始终放在
一个安全位置的文件中使用,一旦开发完成上线后,应该删除这段代码使用。
8,永远不要相信用户
如果您的应用程序涉及任何用户输入,务必要编写安全的代码以处理这种方式,因为它包含各种可能的输入。 想要避免程序被攻击注入或者破坏数据完整性,一定要验证过滤数据的格式。大家可以看下这篇文章《可怕的代码注入方式》
9,合理使用缓存机制
良好的编程方法总是建议使用缓存机制缓存帮助我们获得更好的性能。
在PHP的世界,缓存使用来实现:
Memcached的 —— 一个在使用小数据块存储键值对存 储。
APC —— 可选PHP缓存为开放的PHP操作码缓存
XCache —— 一种快速可靠的PHP操作码缓存
Zend Cache – API,用于实现先进的高速缓存功能的集合。
eAcclerator – 开源的缓存工具
10,避免复制已有变量
将预定义变量复制到具有较小的名字的局部变量不是一个好的编程习惯。 这对应用程序的性能产生不利影响。 让我们来看看下面的代码片段:
Listing6:复制已有变量
1
2
|
$desc = strip_tags ( $_POST [ 'PHP description' ]); echo $desc ; |
上面的代码的代码是复制一个变量为局部变量不必要的例子。 这是不是一个好的做法。同样的效果可以通过使用下面的代码来实现:
1
|
echo strip_tags ( $_POST [ 'PHP description' ]); |
11,使用框架
框架是大量的研究后开发的,因此,他们被证明是问题较少。 它们使我们的开发更便捷,因为它们提供成熟的解决方案。 在PHP中有很多可用的框架。 在开发过程中,你应该利用这些。 其中的一个框架,被广泛采用的是MVC或模型视图控制器。
结论:
编程规范指导我们更有效的开发代码。
遵循编程规范,确保应用程序的更好的性能。
正如在其他编程语言,要想创造出高质量的代码,PHP也需要遵循这种良好的编程规范。