在写PHP程序时,如果文件比较多,目录也比较多,有很多require_once的情况。
如果程序的入口不唯一,并且分布在不同的目录,必须require绝对路径,如果是相对路径,PHP会把入口文件的路径作为基本路径,require里的相对路径都是相对于入口文件的。
这样带来最大的问题就是自己部署的程序,给别人提供接口时,别人根本无法使用!
所以要用绝对路径。
做法就是选一个require的入口文件,大家都要包含这个文件,这个文件的开头加上这么一句:
<?php define("PROJECT_BASE_PATH", realpath(dirname(__FILE__) . "/../"));
这个时候PROJECT_BASE_PATH就是从根开始的绝对路径了。
后续的所有require文件,都用这个宏定义去拼接,例如:
<?php require_once(PROJECT_BASE_PATH .'lib/mysql.lib.php');
就绝对保证不会再出错!
当然,如果你是PHP5的环境,推荐使用__autoload函数,把所有功能都封装到类中,然后在需要的时候自动调用,避免到处require。
本文介绍了解决PHP项目中因相对路径导致的问题的方法,通过定义一个全局路径常量并使用该常量来确保require语句始终指向正确的文件位置,同时推荐在PHP5环境中使用__autoload函数。
941

被折叠的 条评论
为什么被折叠?



