我正在尝试找到在项目的整个目录层次结构中将文件集成到其他文件的理想方法。
我注意到以下在Eclipse PDT中有效:
require_once '/../../services/impl/UserService.php';
require_once ('ui/controller/AbstractController.php');
require_once $_SERVER['DOCUMENT_ROOT'] . '/myproject/daos/impl/UserDAO.php';
require_once dirname(__FILE__) . '/../AsbtractDAO.php';
所有这些解决了他们制定的方式完全不同。有什么想法吗?
特别是括号(2)中的路径可以解析,但当相同的路径在单引号之间时,它不会解析。
另外,每个的利弊是什么?我能采用哪种标准最强大?
答案 0 :(得分:2)
对于前两个,我猜你是否在询问是否使用括号。 为此,请看一下这个答案: When should I use parenthesis in require/include statements? 基本上你可以使用其中之一,但为了便于阅读,最好保持一致,无论你选择哪一种。第一种风格似乎更常见。
使用绝对路径可以加速性能,因为使用相对路径将指示PHP查看include_path中的所有内容。要求可以接受相对或绝对,就像任何其他语言包括来电一样。
第三个将传递绝对路径到require。但是,$SERVER['DOCUMENT_ROOT']
存在潜在问题(例如,它不能在某些IIS服务器上运行)。
在第四个中,您使用文件的dirname(__FILE__)
的绝对路径 - 在PHP> = 5.3中也是__DIR__
。您也可以通过使用路径定义常量来完成此操作。如果您要使用代码高尔夫,这将是最多的击键,但它可能提高性能,具体取决于导入相对位置时您的include_path中需要扫描的文件数量。
要点: