如果我有如下定义的数组,则RouteCollector
在其他对象中注入实例将完美执行:
use MyApp\Routing\RouteCollector;
return [
'router.options.routeParser' => 'FastRoute\\RouteParser\\Std',
'router.options.dataGenerator' => 'FastRoute\\DataGenerator\\GroupCountBased',
RouteCollector::class => DI\object()
->constructorParameter('routeParser', DI\get('router.options.routeParser'))
->constructorParameter('dataGenerator', DI\get('router.options.dataGenerator')),
];
router.options
但是,如果我将定义定义为数组,有没有办法达到相同的结果?例如,我如何在RouteCollector::class
定义中引用它的元素?
use MyApp\Routing\RouteCollector;
return [
'router.options' => [
'routeParser' => 'FastRoute\\RouteParser\\Std',
'dataGenerator' => 'FastRoute\\DataGenerator\\GroupCountBased',
],
RouteCollector::class => DI\object()
->constructorParameter('routeParser', <ASKING>)
->constructorParameter('dataGenerator', <ASKING>),
];
请注意,这不是将相应的完全限定的类名(如\FastRoute\RouteParser\Std
)作为参数传递给constructorParameter
方法。一般来说,它是关于引用数组中定义的配置选项。
谢谢您的支持。