icaine/renamed-class-loader

当使用旧类名时触发回调的类加载器

v1.0 2014-06-01 07:50 UTC

This package is not auto-updated.

Last update: 2024-09-28 17:07:19 UTC


README

Build Status

简单的加载器,用于加载旧/重命名的类,并使用 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() 函数,该函数将首先尝试加载新类名,然后将它设置为旧类名的别名。