管理PEAR和包含路径的最佳策略是什么?

时间:2017-09-21 10:15:17

标签: php include pear

我需要在不同环境中工作,PEAR可能安装在不同的位置;目前,我依靠include_path来处理这个问题。然而,PEAR库的天真包含是危险的:

include "Mail.php";

因为我当前目录中可能有一个“Mail.php”(或“mail.php”* ...)库。我猜我可以在每个环境中设置一个常量(例如PEAR_PATH)并使用绝对路径,例如

include PEAR_PATH."/Mail.php";

还有指示Mail.php来自哪里的好处!这是其他人使用的策略吗?理想情况下,我不会复制该值,但我想如果我只包含具有完整绝对路径的文件,那应该不是问题。

或者,我可以对include_path进行一些预先解析,确定文件的位置......这基本上只是重新创建{{1}的'搜索包含路径'行为,这看起来很傻!

*我现在意识到这取决于文件系统的区分大小写;我的一个环境是Mac。

1 个答案:

答案 0 :(得分:-1)

PEAR依赖于PHP的正确设置包含路径。您作为服务器管理员必须处理此问题。文档如此说:http://pear.php.net/manual/en/installation.checking.php#installation.checking.cli.modifyingphpini

PEAR包中的PHP文件中有许多require_once 'Path/File.php';个调用;你不能,也不应该改变它们。这就是您不应在本地项目目录中使用相同文件名的原因。

防止重复文件路径问题的最佳方法是使用PSR-0兼容的目录结构和项目类的命名空间。