0

为什么 PEAR 这样做:

require_once 'HTML/QuickForm2/Exception.php'; 

而不是这个?:

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

关于这个问题,我唯一能找到的是:

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

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

4

1 回答 1

1

PEAR 严重依赖包含路径,这使得通过简单地将另一个目录添加到包含路径来覆盖类成为可能。

例子:

require_once 'Foo/Bar.php';

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

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

Foo/Bar.php并在目录中创建一个文件patches/。您正在使用的库类现在将自动使用您的自定义Foo_Bar类,无需任何修改。

于 2013-03-20T09:41:12.343 回答