通过Composer使用PSR4-Autoloading vs spl_autoload_register

时间:2017-08-22 02:02:32

标签: php composer-php psr-4

我们正在构建一个新的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;

});

是什么决定了我们应该采用哪种方法?

1 个答案:

答案 0 :(得分:0)

spl_autoload_register的版本可能更快,因为它直接适合您。但是因为您使用Composer自动加载您的版本,所以您的版本可能会比Composer实现更快或更慢。

有一个名为 Don不重复的原则,所以当Composer的人已经考虑并实现它时,为什么要创建 new

话虽这么说,Composer也在内部使用spl_autoload_register

结论:使用Composer psr-4自动加载,它可能比你的实现更强大,并且性能更快。

相关问题