我们正在构建一个新的Slim应用程序,我们希望在代码中使用PSR4-Autoloading和名称空间。
我们通过Composer发现了两种方法:
"autoload": {
"psr-4": {
"App\\Controller\\": "app/controllers",
"App\\Middleware\\": "app/middleware",
"App\\Model\\": "app/models"
}
},
或通过spl_autoload_register
即:
spl_autoload_register(function ($class_name) {
$filename = __DIR__ . DIRECTORY_SEPARATOR . str_replace('\\', DIRECTORY_SEPARATOR, $class_name) . '.php';
require $filename;
});
是什么决定了我们应该采用哪种方法?
答案 0 :(得分:0)
spl_autoload_register
的版本可能更快,因为它直接适合您。但是因为您使用Composer自动加载您的版本,所以您的版本可能会比Composer实现更快或更慢。
有一个名为 Don不重复的原则,所以当Composer的人已经考虑并实现它时,为什么要创建 new 。
话虽这么说,Composer也在内部使用spl_autoload_register
结论:使用Composer psr-4自动加载,它可能比你的实现更强大,并且性能更快。