定义站点根目录以自动加载php资产

时间:2014-01-29 17:28:43

标签: php

我正在尝试定义站点根目录以轻松自动加载我的php类。我是相当新的并且有很多悲伤,因为我实际上必须更改includes或require_once路径,因为相应的页面位于不同的文件夹中。

我找到了一个教程并应用了我所学到的知识,但它无法正常工作。

以下是我使用的内容:

     defined ('DS') ? null : define ('DS', DIRECTORY_SEPARATOR);

defined('SITE_ROOT') ? null :
    define('SITE_ROOT', DS. 'C:'. DS. 'xampp' .DS. 'htdocs' .DS. 'database');

defined('LIB_PATH') ? null : define('LIB_PATH', SITE_ROOT. DS .'includes');

spl_autoload_register(function($class){
    require_once (LIB_PATH.DS . $class . '.php');
});

require_once (LIB_PATH.DS .'functions.php');

有关如何正确定义root以限制更改文件路径的次数的任何建议吗?

1 个答案:

答案 0 :(得分:0)

我定义我的doc_root似乎对我有用的方法是在变量中使用完整的绝对路径。

我在名为config.inc.php的文件夹中创建了一个includes/config文件,其中包含一些此类内容。

    define("DOC_ROOT","/home/sitename/public_html");
    define("MODULES", DOC_ROOT."/modules");

您可以将文件放在任何地方。由于我的网站编码方式,我只需在我的index.php中包含配置文件,因为通过该文件调用页面。

include_once("includes/config/config.inc.php");

但是,您可以将其包含在脚本顶部或头文件等中。

然后,当我需要使用文件时,我可以使用require_once(DOC_ROOT."/somefolder/file.php");

或类似

require_once(MODULES."/file.php");
require_once(MODULES."/someotherfile.php");

无论目录在哪里都可以工作。并且不应该真正改变路径。