2013-03-20 57 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。您正在使用的圖書館課程現在將自動使用您的定製課程,而不需要任何修改。

相關問題