【发布时间】:2018-09-02 15:55:48
【问题描述】:
我有一个接口UserIdProvider,它有两个实现:
ConsoleUserIdProvider - it takes user id from CLI input option
RequestUserIdProvider - it comes from {userId} parameter in route
我应该如何配置Kernel 在我只运行 CLI 时注入控制台实现,以及当它是对 Web 服务器的常规请求时如何使用第二个?
我为 console.php 创建了单独的 ConsoleKernel extends Kernel 加载位置:
$loader->load($confDir . '/console_services.yml');
但不幸的是,它在APP_ENV=prod 模式下通过缓存覆盖了常规Kernel,其中应该使用RequestUserIdProvider。
提前致谢。
【问题讨论】:
标签: php symfony dependency-injection symfony4