icaine / renamed-class-loader
当使用旧类名时触发回调的类加载器
v1.0
2014-06-01 07:50 UTC
Requires (Dev)
- nette/tester: ~1.0
This package is not auto-updated.
Last update: 2024-09-28 17:07:19 UTC
README
简单的加载器,用于加载旧/重命名的类,并使用 onClassLoaded
事件,例如用于日志记录或通知旧类名被使用。加载器使用 class_alias()
函数将新类名与旧类名进行别名设置。
Composer
require: "icaine/renamed-class-loader": "~1.0"
用法
//registering classes $loader = new iCaine\RenamedClassLoader([ 'Old\\Class\\Name' => 'New\\Class\\Name' ]); //or like this $loader->registerClass('Old\\Class\\Name', 'New\\Class\\Name'); //or this way $loader->registerClasses([ 'Old\\Class\\Name' => 'New\\Class\\Name' ]); //we can register a callback(s) when the loader successfully loads old class $loader->onClassLoaded[] = function($oldName, $newName) { trigger_error("Old class name used: '$oldName'. Use new name '$newName' instead.", E_USER_DEPRECATED); }; //now lets register the loader (uses spl_autoload_register function) $loader->register();
注意:
$loader->register()
应在加载器注册后调用,因为 RenamedClassLoader 使用class_alias()
函数,该函数将首先尝试加载新类名,然后将它设置为旧类名的别名。