2012-12-15 32 views
-2

我知道这里有一些关于该主题的问题,但它们都包含不同的答案。我想知道什么是最有效的方式来获得基础URL和绝对路径5.4 +获取基本URL和绝对路径的最佳实践

绝对路径:使用魔法恒

define('ROOT', __DIR__); //C:\wamp\www 

或者写路径自己曾经

define('ROOT', 'C:\wamp\www'); 

最终用途:

require ROOT . '/blabla/test.php'; 

我该如何接收绝对路径?除非没有更好的方法,什么样的选择最有效?

关于基本的网址,我不太清楚如何生成网址。

+0

需要该值的应用程序的那些部分应该被注入。最有可能是一个'SplFileInfo'对象(或一个包含不同具体实现的抽象接口),以便实际保持它的灵活性。我会考虑最佳做法。因为你通常不需要关心如何获得价值,但它是如何使用的。此外,您在这里混合术语,您谈论的不是基本URL。 – hakre

回答

0

下面是我通常如何去做这件事。 请记住我使用Apache本地(Windows)中,它可以处理 '/' 目录分隔符,不知道IIS等

文件夹结构:

C:/wamp/www/somefolder 
    /index.php 
    /core 
     /database.php 
     /config 
      /database.php 

的index.php:

// ROOT will be C:/wamp/www/somefolder 
define('ROOT', str_replace('\\', '/', dirname(__FILE__))); 
define('CORE', ROOT . '/core'); 
define('CONFIG', CORE . '/config'); 
require(CORE . '/database.php'); 

/somefolder/core/database.php:

require(CONFIG . '/database.php'); 

所以基本上我用dirname(__FILE__)在index.php文件中。它总是对我有用,并且是我得到正确路径到根目录的可信任方式。