目录结构:
C:/wamp/www/application/model/data_access/data_object.php
C:/wamp/www/application/model/users/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的include语句wchih是相对于user.class.php。这两个文件在不同的目录层次结构下。现在,每当我想创建一个User()对象时,我必须将这个user.class.php包含在各种文件中(例如projects.php,links.php - 它们本身在不同的层次结构中)。
问题是data_object.php文件包含的相对路径对于projects.php是否有效,但如果我打开links.php,则错误消息显示它无法在user.class.php中打开文件data_object.php。我认为相对包含data_object.php它正在考虑包含user.class.php的文件的路径。我在多个场景中遇到了这样的问题
我必须保持我的目录结构,但必须找到一种方法来处理嵌套包含。 我使用Document的session会话它给根路径,因为C:/ wamp / www / i附加了data_object.php包含的路径,但这不起作用。 (注意:www之后出现正斜杠) 我目前正在wamp服务器的localhost上运行,但在完成后我必须在域上托管解决方案。请帮忙
答案 0 :(得分:0)
据我记得,相对路径将使用顶级php for includes,即包含其他包括路径应该相对于第一个php文件。
我沿着这条相对路走下去,我很遗憾,我强烈推荐Pekka所建议的并使用绝对路径like this
ps为你的问题添加一些自由中断!
答案 1 :(得分:0)
我们使用自动加载器(spl_autoload_register)对类进行索引(使用token_get_all)
它在开始工作之前是一项工作,但是使用自动加载器,您只需开始使用类。
它大大减少了包含数量(包括问题)