牛骨文教育服务平台(让学习变的简单)

包含文件

    提取出来具有通用函数的包含文件,文件后缀以.inc来命名,表明这是一个包含文件。
    如果有多个.inc文件需要包含多页面,请把所有.inc文件封装在一个文件里面,具体到页面只需要包换一个.inc文件就可以了。
    如:xxx_session.incxxx_comm.incxxx_setting.incmyssql_db.inc
    把以上文件以以下方式,封装在xxx.basic.inc文件里面:

require_once("xxx_session.inc");
require_once("xxx_comm.inc");
require_once("xxx_setting.inc");
require_once("mysql_db.inc");

PHP和HTML代码的分离问题

    对性能要求不是很高的项目和应用,我们建议不采用 PHP 和 HTML 代码直接混排的方式书写代码,而采用 PHP 和 HTML 代码分离的方式,即采用模版的方式处理,这样一方面对程序逻辑结构更加清晰有利,也有助于开发过程中人员的分工安排,同时还对日后项目的页面升级该版提供更多便利。

对于一些特殊情况,比如对性能要求很高的应用,可以不采用模版方式。

类的构造函数

如果要在类里面编写构造函数,必须遵循以下规则:
    a.不能在构造函数中有太多实际操作,顶多用来初始化一些值和变量;
    b.不能在构造函数中因为使用操作而返回false或者错误,因为在声明和实例化一个对象的时候,是不能返回错误的;

错误返回检测规则

检查所有的系统调用的错误信息,除非你要忽略错误。
为每条系统错误消息定义好系统错误文本,并记录错误LOG。

引用的使用

    引用在程序中使用比较多,为了公用同一个内存,而不需要另外进行复制,XXX环境下的引用使用时,需要注意下面的情况;

    在对函数的输入参数中使用引用时,不能在调用的时候在输入参数前加 & 来引用,而直接使用该变量即可,同时必须在函数定义的时候说明输入参数来自引用,比如下面的代码:

$a = 1;
function ab( &$var ) {
    $var ++;
    return $var;
}

$b = ab($a); // 注意,此处不能使用 $b = ab(&$a)的方式;
echo $b."
";
echo $a."
";

此时 $a`$b 都是 2; XXX环境下对引用的特殊要求源自 php.ini 文件里面的allow_call_time_pass_reference 项设置,对外公开的版本是 On,这样就可以支持&直接加到调用函数时变量前面进行引用,但是这一方法遭到抗议,并可能在将来版本的 PHP/Zend 里不再支持。受到鼓励的指定哪些参数按引用传递的方法是在函数声明里。你被鼓励尝试关闭这一选项(使用off,XXX的所有运行环境下都是off`)并确认你的脚本仍能正常工作,以保证在将来版本的语言里它们仍能工作。

PHP项目开发中的程序逻辑结构

    对于 PHP 项目开发,尽量采用 OOP 的思想开发,尤其在 PHP5 以后,对于面向对象的开发功能大大提高。

    在 PHP 项目中,我们建议将独立的功能模块尽量写成函数调用,对应一整块业务逻辑,我们建议封装成类,既可以提高代码可读性,也可以提高代码重用性。比如,我们通常将对数据库的接口封装成数据库类,有利于平台的移植。

    重复的代码要做成公共的库。(除了我们在 plug-in 产品上遇到的情况,该产品系列有多个相类似的产品,为了尽可能地减少安装包尺寸,不适合将这些产品共用的所有函数做成公共的库)。