嗨,我正在为吉他和弦开发一个库.在库中的一些文件中我有这样的东西:
require_once "lib/GuitarChord.php"; require_once "lib/Chord.php"; require_once "lib/Key.php"; require_once "lib/Tuning.php";
如何创建此库,以便不需要知道其他库文件的位置?
这样一个人可以在任何目录中拥有库文件?
编辑:删除了第二个问题.
为这些类可能的所有位置创建自动加载器.
例如:
//AUTOLOADER function class_autoloader($class) { // presumes classes are in './classes' $folders = array( './','./../','./../../' ); $directories = array( 'classes','lib','' ); $dir = dirname(__FILE__); $theClass = '/' . $folderedClass . '.php'; foreach($folders as $folder){ foreach($directories as $directory){ $theInclude = $dir.$folder.$directory.$theClass; if (file_exists($theInclude) && include_once($theInclude)) { return TRUE; } } } trigger_error("The class '$class' or the file '$theClass' failed to spl_autoload ",E_USER_WARNING); return FALSE; } spl_autoload_register('class_autoloader');
然后,如果你想加载Chord类并且你知道它在你的lib文件夹中,那么当你这样做时,自动加载器将为你完成工作:
new Chord();
您可以使用spl_autoload_register
附加许多不同的自动加载器回调
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。