[php]引入文件的习惯

1、__DIR__后面记得接斜杠/  例如require_once __DIR__.'/../a.php';

    其实我个人习惯,无论是定义好的路径还是用__DIR__  只要后面连路径,开头必然会写一个斜杠/,这是最保险的。

    例如:
    define('MY_PATH',realpath(__DIR__.'/../../my/') . '/' );

    require_once( MY_PATH . '/test.php' );  // 不用关心定义的路劲最后是不是斜杠,就算路劲有两个斜杠,其实对路径的解析是没有影响的

2、用require_once,不要用include_once。 因为用include的时候路劲如果错了,是不会告诉你的,然后你找了半天为什么class xxx not found也找不到原因,用require_once的话会直接告诉你路劲错误。另外,不要说require比include开销大,其实那点开销是小到可以忽略的。

3、引入文件不要用realpath函数,原因:一是用realpath会带来不好的阅读体验,其他人看到你这样还要先判断你realpath之后的值;二是realpath返回的路径最后面会缺少一个斜杠/;三是编辑器不够智能,无法识别realpath返回的路径,就无法判断你是否引入了相应的类,例如你用realpath引入了一个类文件,但编辑器往往会以为你没有引入某个类,而给你警告类不存在,作为强迫症这个真不能忍.....

    不推荐写法: require_once( realpath(MY_PATH . '/../my/test_class.inc.php') );  推荐写法:require_once( MY_PATH . '/../my/test_class.inc.php' );

    但是,定义项目路径的时候可以用realpath函数,但别忘了后面加斜杠/

    例子:define('MY_PATH',realpath(__DIR__.'/../../my/') . '/' );

4、当一个php文件引入其他文件时,一定要用绝对路径,不要用相对路径。

    错误做法: require_once('/../test.php'); 

    正确做法:   require_once(__DIR__.'/../test.php'); 或者 require_once( MY_PATH . '/test.php' );

    为什么不能用相对路径?因为要考虑文件之间相互引入的时候,会出现路劲解析错误导致文件不存在的异常。PHP中相对路径是以当前工作目录为基准的,并非以当前处理文件目录为基准。

5、类文件:当类继承另一个类的时候,必须要引入被继承的类,因为要确保这个类文件被单独引入也能正常使用这个类的功能。

  例如:

   require_once(__DIR__. '/parent_class.inc.php');

   class child_class extends parent_class{

        ...

   }

    

posted @ 2016-08-28 15:38  小闷的路  阅读(249)  评论(0编辑  收藏  举报