2010-06-11 76 views
0

目录结构:嵌套包括在PHP

  • C:/wamp/www/application/model/data_access/data_object.php

  • C:/瓦帕/网络/应用/模型/用户/ user.class.php

  • C:/wamp/www/application/controller/projects.php

  • C:/wamp/www/application/controller/links/links.php

我有2个PHP文件data_object.php和user.class.php现在user.class.php有包括语句data_object.php wchih相对于user.class.php.These两个文件正在不同的目录层次。现在,我必须将这个user.class.php包含在各种文件中(比如像projects.php,links.php-它们本身在不同的层次结构中),只要我想创建一个User()对象。

问题是data_object.php文件包含的相对路径对于说projects.php有效,但是如果我打开links.php,则错误消息表示无法在user.class.php中打开文件data_object.php。我认为data_object.php的相对包含它正在考虑包含user.class.php的文件的路径。我在多个场景中面临这样的问题

我必须保持目录结构的方式,但必须找到一种方法来处理嵌套包含。 我使用会话的文档根,它给根路径为C:/ wamp/www/i追加了data_object.php包含的路径,但这不起作用。 (注意:www后面有正斜杠) 我目前正在wamp服务器的本地主机上运行,​​但是完成后我必须在域上托管解决方案。请帮助

+0

如何硬编码在一个中央位置的绝对路径(例如'限定(“MODEL_PATH”,“C:/瓦帕/网络/应用/模型“)'并在做包括使用它? – 2010-06-11 07:39:10

+0

我...不能读取... – 2010-06-11 07:40:57

+0

感谢Pekka它解决了问题 – aeonsleo 2010-06-11 09:35:49

回答

0

据我所知,相对路径将使用包含的顶级php,即包括包含另一个include的路径应该是相对于第一个php文件。

我去了这个相对路径,这一点我很后悔,我会强烈建议有什么建议佩卡和使用绝对路径like this

PS一些libe符添加到您的问题!

0

我们使用自动加载spl_autoload_register),该指数类(含token_get_all
这是一些工作在开始工作之前,但有一个自动加载,你刚开始使用类。

它在很大程度上减少了包括数(和包括的问题)