我最近开始了一个比我习惯的更大的项目,我发现很难管理所有目录的链接(例如包含文件)。
有没有办法可以定义一个基本路径,然后从那里开始。
这样的事情:
require(BASEPATH.'/folder/file.php');
而不是:
require('../../folder/file.php');
所以基本上是一种方式,以便在移动文件时链接不会中断。
答案 0 :(得分:1)
您始终可以根据索引文件/前端控制器中__DIR__
的值存储或定义变量:
// in index.php
define('BASE_DIR', __DIR__);
在其他文件中,您现在可以像这样引用基目录:
// in some_other.php
require(BASE_DIR . '/folder/file.php');
答案 1 :(得分:1)
所以你说你已经开始了一个大型项目 - 然后你从一开始就做到了,即从现在开始。
我建议您创建包含此内容的const.php
:
<?php
$constants = array(
'DS' => DIRECTORY_SEPARATOR, //shorthand
'ROOT' => __DIR__,
'LIBS' => ROOT . '/libs'
);
//and so on - add more
//Define each one now:
foreach ($constants as $const => $val ){
define($const, $val);
}
您项目的任何文件:
<?php
require ('../const.php');
//now constants are available and you can access them:
require ROOT . 'some.php'; //etc etc
require ROOT . 'another.php';