0

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

我对这个结构的问题是你可以看到管理部分有自己的类、函数和数据库配置文件的文件夹。

然后其他页面的根有自己的一组页面,用于类、函数和数据库连接(与 admin 相同)

我试过只有一个文件夹用于类,另一个用于包含等等,管理部分和根页面都共享,但它的结果变成了一个混乱的包含,比如蜘蛛网。

包括我试过的方法是

include_once(dirname( FILE )./directory/...) 如果我在一个文件夹中并且我试图将一个上一级的文件包含在当前页面中,那么它的作用是不起作用的。而不是使用主根目录,它还包含文件夹 im 。所以这没有任何用处。

因此,如果这是我的根目录:d:/wamp/www/website/ 并且我将主根目录中的某些内容包含到名为 functions 的目录内的文件中,则 dirname( FILE ) 实际上的值为 d:\wamp\ www\网站\功能\

什么是包含文件的好方法,而不会陷入一堆错误,试图弄清楚发生了什么。

谢谢

4

2 回答 2

1

尝试这样的事情,并在中央配置文件中定义它。

这将为您的所有路径提供一个常量,然后定义一些其他常量,可能每个文件夹一个为 ROOT_CLASSES 和 ADMIN_CLASSES,并附加适当的文件路径。那么它真的很简单地包含东西。只需用常量描述它并添加文件名即可。

定义(“ABS_PATH”,“/path/to/upper/most/directory”);// 手动的

// 定义其他路径...
定义(“ADMIN_CLASSES”,ABS_PATH。“/admin/classes/”);
定义(“ROOT_CLASSES”,ABS_PATH。“/root/classes/”);

包括(ROOT_CLASSES。“/myclass.php”);

如果这在配置文件中以及其他声明中,则您无需担心以后定义它们。

于 2009-07-26T03:30:03.227 回答
0

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

  • [site] 这个目录只有一个文件index.php,是域根目录
    • [js]
    • [CSS]
    • [图片]
  • [模型]
  • [看法]
  • [控制器]
  • [lib] - 3rd 方代码,PHPMailer 等
  • [配置]
  • [行政]
    • [js]
    • [CSS]
    • [图片]
    • [模型]
    • [看法]
    • [控制器]

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

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

于 2009-07-26T03:49:13.310 回答