Php 管理链接和目录
我最近启动了一个比以前更大的项目,我发现很难管理所有目录的链接(比如包括文件) 是否有一种方法可以定义一个基本路径,然后从那里开始 比如说:Php 管理链接和目录,php,Php,我最近启动了一个比以前更大的项目,我发现很难管理所有目录的链接(比如包括文件) 是否有一种方法可以定义一个基本路径,然后从那里开始 比如说: require(BASEPATH.'/folder/file.php'); 而不是: require('../../folder/file.php'); 因此,基本上是一种方法,以便在移动文件时链接不会中断。您可以始终根据索引文件/前端控制器中的值存储或定义变量: // in index.php define('BASE_DIR', __DIR__);
require(BASEPATH.'/folder/file.php');
而不是:
require('../../folder/file.php');
因此,基本上是一种方法,以便在移动文件时链接不会中断。您可以始终根据索引文件/前端控制器中的值存储或定义变量:
// in index.php
define('BASE_DIR', __DIR__);
在其他文件中,您现在可以引用基本目录,如下所示:
// in some_other.php
require(BASE_DIR . '/folder/file.php');
所以你是说你已经开始了一个大项目,然后你从一开始就做了,也就是从现在开始 我建议您创建包含以下内容的
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);
}
您在寻找什么?尽早定义常量是最好的方法。在我的示例中-这是一个很好的开始-正如我所说-将它们包含在项目的任何文件中如果不扩展类或其他操作,就不能在所有文件中自动包含变量(或文件)。您所说的是范围。但是常量是不同的——您只需要定义它们,并且可以从任何类或函数访问它们。此外,还可以使用spl_auto_load_register($custom_auto_load_function)来实现自己的函数/var/类加载器
<?php
require ('../const.php');
//now constants are available and you can access them:
require ROOT . 'some.php'; //etc etc
require ROOT . 'another.php';