Joh*_*ohn 8 php set-include-path
我了解了函数set_include_path().这一次,我在config.php文件中定义了一个常量
define('BASE_PATH', '/var/www/mywebsite/public_html/');
Run Code Online (Sandbox Code Playgroud)
在所有后续的php文件中,我都会这样包含
include(BASE_PATH.'header.php');
include(BASE_PATH.'class/cls.data_access_object.php');
Run Code Online (Sandbox Code Playgroud)
使用常量方法与set_include_path方法有什么优势,反之亦然?常量方法是否过时了?
使用set_include_path()(或ini_set('include_path',...))可以指定包含库代码的多个文件夹.例如,如果您的应用程序依赖于各种不同的框架/库,例如PEAR和Zend FW,您可能会有类似的东西,
ini_set('include_path','/ usr/local/php/pear:/ usr/local/php/zendfw');
这种方法的缺点是它将使用它首先找到的任何文件; 如果你在一个以上的包含路径中有一个名为"Mailer.php"的文件,它将包含它找到的第一个文件,如果这不是你的意图,会导致细微的错误.良好的代码组织通常可以解决该问题.此外,include_path将通过realpath缓存(http://us2.php.net/realpath),有时需要进行调整以获得更好的性能,具体取决于您的设置.
两种方式都很好,但是使用define()方法更明确.
FWIW,我通常使用ini_set('include_path',...).
我认为 Micahel 的解释非常清楚。
当您将所有 PHP 文件存储在一个文件夹中时,我建议您使用“set_include_path”,例如:“libs/”(它更容易)。当您明确指定文件路径时,使用define() 方法应该会更快。
除非真的有必要,否则总是尽量避免使用绝对路径。我发现以这种方式指定路径非常有用:
define("BASE_PATH", dirname(__FILE__));
Run Code Online (Sandbox Code Playgroud)
这样您就可以避免每次移动代码时都必须更新路径。
| 归档时间: |
|
| 查看次数: |
13205 次 |
| 最近记录: |