2013-03-20 61 views
0

为什么PEAR做到这一点:PEAR为什么不使用绝对路径?

require_once 'HTML/QuickForm2/Exception.php'; 

取而代之的是?:

require_once dirname(__FILE__) . '/Exception.php'; 

我能找到关于这个问题的唯一事情是这样的:

https://pear.php.net/bugs/bug.php?id=17517

它应该是“完全与PEAR标准和设计指南相反的方向”。我的问题是...为什么?

+1

既然'HTML/QuickForm2/Exception.php'是绝对路径? – 2013-03-20 06:18:42

回答

1

PEAR很大程度上依赖于包含路径,它可以通过简单地将另一个目录添加到包含路径来覆盖类。

实施例:

require_once 'Foo/Bar.php'; 

将寻找在每个include_path指定的目录的Foo/Bar.php。如果你想提供自己的补丁Foo/Bar.php,你可以简单地做一个

set_include_path(__DIR__ . '/patches/' . PATH_SEPARATOR . get_include_path()); 

,并在patches/目录下创建一个文件Foo/Bar.php。您正在使用的图书馆课程现在将自动使用您的定制课程,而不需要任何修改。

相关问题