Symfony 6修饰接口并使用注解指定默认实现?

9w11ddsr  于 2023-03-09  发布在  其他
关注(0)|答案(1)|浏览(102)

FilterMetadataFactory类(目前)是FilterMetadataFactoryInterface唯一实现

class FilterMetadataFactory implements FilterMetadataFactoryInterface
{
}

仅在生产中,默认实现应由CachedFilterMetadataFactory修饰:

#[When('prod')]
#[AsDecorator(decorates: FilterMetadataFactoryInterface::class, priority: -10)]
class CachedFilterMetadataFactory implements FilterMetadataFactoryInterface
{
    public function __construct(
        private readonly CacheInterface $cache,
        #[MapDecorated]
        private readonly FilterMetadataFactoryInterface $decorated,
   ) {
   }
}

这不起作用:当然,Symfony抱怨服务FilterMetadataFactoryInterface不存在,因为我没有定义别名。

当多个类实现同一个接口时,我如何使用注解定义别名?

qni6mghb

qni6mghb1#

回答我自己挖掘源代码:在6.3中增加:AsAlias.

相关问题