構建庫時,我總是提供一個處理庫自動加載的類Autoloader
。自動加載器註冊是這樣的:如何管理依賴關係自動加載
require_once 'path/to/PHP-Parser/lib/PHPParser/Autoloader.php';
PHPParser_Autoloader::register();
我不知道如何處理它,如果我的圖書館依賴於另一個庫。想象一下PHPParser
取決於PHPLexer
。現在,使用庫時一個需要寫:
require_once 'path/to/PHP-Lexer/lib/PHPLexer/Autoloader.php';
PHPLexer_Autoloader::register();
require_once 'path/to/PHP-Parser/lib/PHPParser/Autoloader.php';
PHPParser_Autoloader::register();
如果有不只是一個依賴更多的還是依賴有依賴自己,這會導致混亂很快。
那麼應該怎麼處理依賴自動加載?
我想到的一個想法是,圖書館也應該處理自動加載,因爲它的依賴關係也是如此,但那樣做感覺不對。另一個想法是根本不提供自動加載器,並假定人們使用UniversalClassLoader
。這似乎並不正確。
'我有一個想法是,圖書館應處理自動加載它的依賴性過,但只是感覺不對。' - 當所有供應商都支持PSR-0時,這個想法效果不錯 –