Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 管理链接和目录_Php - Fatal编程技术网

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';