Php 通过Composer vs spl_autoload_寄存器使用PSR4自动加载
我们正在构建一个新的Slim应用程序,我们希望在代码中使用PSR4自动加载名称空间 我们通过Composer找到了两种方法,即:Php 通过Composer vs spl_autoload_寄存器使用PSR4自动加载,php,composer-php,psr-4,Php,Composer Php,Psr 4,我们正在构建一个新的Slim应用程序,我们希望在代码中使用PSR4自动加载名称空间 我们通过Composer找到了两种方法,即: "autoload": { "psr-4": { "App\\Controller\\": "app/controllers", "App\\Middleware\\": "app/middleware", "App\\Model\\": "app/models" } }, 或通过spl\u自
"autoload": {
"psr-4": {
"App\\Controller\\": "app/controllers",
"App\\Middleware\\": "app/middleware",
"App\\Model\\": "app/models"
}
},
或通过spl\u自动加载\u寄存器
,即:
spl_autoload_register(function ($class_name) {
$filename = __DIR__ . DIRECTORY_SEPARATOR . str_replace('\\', DIRECTORY_SEPARATOR, $class_name) . '.php';
require $filename;
});
什么决定了我们应该使用哪种方法?带有
spl\u autoload\u register
的版本可能更快,因为它直接适合您。但是,因为您使用Composer自动加载从属决策,所以您的版本可能与Composer实现一样快,甚至更慢
有一个原则叫做“不要重复你自己”,所以为什么要做一些新的东西,而作曲家的人已经考虑并实施了它
也就是说,Composer还在内部使用spl\u autoload\u寄存器
结论:使用Composer psr-4 autoload,它可能比您的实现更健壮,而且性能也更快。使用Composer将更加健壮,并允许您导入软件包。如果您不使用Composer
,您做错了。@localheinz我们使用composer来维护我们的供应商库,请帮自己一个忙,只需使用composer
的自动加载功能即可。