たとえば、次のコードがあるとします。
$foo = new bar();
そして、このようなオートローダー。
function autoload($class_name) {
$class_file_name = str_replace('_', '/', $class_name) . '.php';
if (file_exists($class_file_name)) {
include($class_file_name);
}
}
しかし、本当にロードしたいクラスは「foo/bar.php」フォルダーにあり、実際のクラス名は実際には foo_bar です。自動ロードされるクラスの名前を動的に変更する方法はありますか? 例えば、こんな感じでしょうか。
function autoload(&$class_name) {
$class_name = 'foo_' . $class_name;
$class_file_name = str_replace('_', '/', $class_name) . '.php';
if (file_exists($class_file_name)) {
include($class_file_name);
}
}
このようなことが可能かどうかはわかっていますが、それは正確なベストプラクティスではありませんが、そうであるかどうかを知りたいです.