我创建了一个mvc,就文件夹和设置文件而言,它具有这种级别的组织。
+[admin]
-[js]
-[css]
-[images]
-[classes]
--list of php classes
-[includes]
--config.php (includes db connection str
--functions.php (php functions)
--root---
[js]
[css]
[images]
[classes]
--list of php classes
-[includes]
--config.php (includes db connection str
--functions.php (php functions)
我对此结构的问题是,您可以看到管理部分有自己的类,函数和db配置文件的文件夹。
然后其他页面的根有自己的类,函数和数据库连接页面(与admin相同)
我试过只有一个文件夹用于类,另一个用于包含等等,管理部分和根页面都共享,但它的结果变成一堆乱七八糟的包括蜘蛛网。
包括ive尝试的方法是
include_once(dirname( FILE )./ directory / ...)如果我在一个文件夹内并尝试包含一个当前级别的文件,它的作用是什么页面它不会工作。而不是使用主根目录,它也包括内部文件夹。所以没有好用。
所以如果这是我的根:d:/ wamp / www / website / 我将主根中的内容包含在名为functions的目录中的文件中,dirname( FILE )实际上具有d:\ wamp \ www \ website \ functions \
什么是一种很好的方法,可以将文件包含在一堆乱七八糟的错误中,试图找出最新情况。
感谢
答案 0 :(得分:1)
尝试这样的方法,并在中央配置文件中定义。
这将为您的所有路径提供一个单一的常量,然后定义一些其他常量,可能每个文件夹一个为ROOT_CLASSES和ADMIN_CLASSES,并附加相应的文件路径。然后它只是包含东西。只需用常量描述它并添加文件名。
define("ABS_PATH", "/path/to/upper/most/directory"); // Manual // define other paths... define("ADMIN_CLASSES", ABS_PATH . "/admin/classes/"); define("ROOT_CLASSES", ABS_PATH . "/root/classes/"); include(ROOT_CLASSES."/myclass.php");
如果这是在配置文件中,以及其他声明,您将不必担心以后定义它们。
答案 1 :(得分:0)
这就是我几乎所有自定义网站的布局。
我使用__autoload来包含文件。有许多方法可以优化其性能,您不必担心包含。
我只将管理员特定的代码放在管理员下面,所以公共访问和管理员访问都使用的jQuery之类的东西都在site / js中。