在PHP中设置一个绝对include_path


Setting an absolute include_path in PHP

我有许多类(Manager和Data)具有include_once。似乎当我将数据类包含到管理器中时,它们可以很好地协同工作。。。但是当我在视图中包含manager类以获取数据时,它就坏了。我认为,由于视图实际上向自己添加了管理,这使得数据的路径不正确,因为视图从根目录/adoptions/apps/add/起有3个目录,而管理器和数据类从根目录起有4个目录。这是正确的吗?

由于我是PHP的新手,我注意到/让我回到了不仅仅是web root的地方。我在windows机器上运行apache,htdoc的路径实际上是

c:/Program Files(x86)/Zend/Apache2/htdocs/mywebsite 

(如果这有帮助的话)。我只想让我所有的包裹都像一样

 include_once('/com/mywebsite/data/people/People.class.php';

谢谢!

您需要在安装的php.ini文件中设置include_path属性。如果愿意,请清除现有条目,或者添加分号,然后添加c:/Program Files(x86)/Zend/Apache2/htdocs

然后所有的路径都是相对于它的,所以你可以直接去include("/mywebsite/data/people/People.class.php");

或者,您可以在.htaccess文件中执行此操作:

php_value include_path ".;c:/Program Files(x86)/Zend/Apache2/htdocs"

或者php中的这两种方法之一:

ini_set("include_path",".;c:/Program Files(x86)/Zend/Apache2/htdocs");

set_include_path(".;c:/Program Files(x86)/Zend/Apache2/htdocs");