使用$ _SERVER ['document_root']有什么意义?

时间:2015-09-01 06:11:24

标签: php server

有什么好处?如果我知道项目的文件结构就像我的手背,为什么我不能只使用相对网址?例如,如果我们想要文件夹trial中的文件并且文件名为test.php,那么做什么有什么好处

require $_SERVER['document_root'] . "/trial/test.php";

什么时候能做到

require "test.php"; //assuming we are in the trial folder

谢谢!

1 个答案:

答案 0 :(得分:2)

$_SERVER['DOCUMENT_ROOT']非常有用,尤其是在您的开发环境中工作时。如果您正在处理大型项目,则可能会在页面中包含大量文件。例如:

<?php 
//Defines constants to use for "include" URLS - helps keep our paths clean 

        define("REGISTRY_CLASSES",  $_SERVER['DOCUMENT_ROOT']."/SOAP/classes/"); 
        define("REGISTRY_CONTROLS", $_SERVER['DOCUMENT_ROOT']."/SOAP/controls/"); 

        define("STRING_BUILDER",     REGISTRY_CLASSES. "stringbuilder.php"); 
        define("SESSION_MANAGER",     REGISTRY_CLASSES. "sessionmanager.php"); 
        define("STANDARD_CONTROLS",    REGISTRY_CONTROLS."standardcontrols.php"); 
?>

在开发环境中,您很少使用根文件夹,特别是如果您在盒子上本地运行PHP并且使用DOCUMENT_ROOT是维护URL一致性的好方法。这样可以节省您准备应用程序从盒子到生产服务器的部署工作时间(更不用说让您省去包含路径故障的麻烦)。

然而,这是个人选择,许多框架使用dirname(__FILE__)根据已知文件计算应用程序路径,通常是index.php