为什么PEAR会这样做:
require_once 'HTML/QuickForm2/Exception.php';
而不是这个?:
require_once dirname(__FILE__) . '/Exception.php';
我唯一能找到的就是:
https://pear.php.net/bugs/bug.php?id=17517
它应该是“完全与PEAR标准和设计指南相反的方向”。我的问题是......为什么?
答案 0 :(得分:1)
PEAR严重依赖于include路径,这样就可以通过简单地将另一个目录添加到包含路径来覆盖类。
示例:
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
类,而无需进行任何修改。