你在根目录中的目录方法是什么

时间:2009-07-26 03:26:04

标签: php file-management

我创建了一个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 \

什么是一种很好的方法,可以将文件包含在一堆乱七八糟的错误中,试图找出最新情况。

感谢

2 个答案:

答案 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)

这就是我几乎所有自定义网站的布局。

  • [site]此目录只有一个文件index.php,是域根目录
    • [JS]
    • [CSS]
    • [图像]
  • [模型]
  • [图]
  • [控制器]
  • [lib] - 第三方代码,PHPMailer等
  • [配置]
  • [管理员]
    • [JS]
    • [CSS]
    • [图像]
    • [模型]
    • [图]
    • [控制器]

我使用__autoload来包含文件。有许多方法可以优化其性能,您不必担心包含。

我只将管理员特定的代码放在管理员下面,所以公共访问和管理员访问都使用的jQuery之类的东西都在site / js中。