我使用php-di在我的API-Application中自动加载类。
然而,对于速度,php-di声明你必须手动自动装配类以进行编译。所以他们给我们举了这个例子:
return [
// ... (your definitions)
UserController::class => autowire(),
BlogController::class => autowire(),
ProductController::class => autowire(),
// ...
];
我不明白我们必须自动编译哪些类。所有课程?或者只有控制器?
由于应用程序非常大,我可以想象这个DiC配置文件会变得多大。不仅如此,如果我创建一个新的存储库或模型,那么我不应该忘记将它添加到我的DiC配置中。
答案 0 :(得分:1)
您只能添加您的控制器:PHP-DI将递归遍历所有依赖项(及其依赖项)以进行编译。控制器通常是应用程序的入口点,因此它是查找应用程序中所有(或大多数)服务的良好起点。
我认为这更多的是表演问题。如果您的应用程序具有超短的响应时间,那么它可能是值得的,否则添加所有用于编译的类可能不会产生明显的差异。