我正在查看FriendsOfSymfony/FOSOAuthServerBundle中的一些服务定义,对我来说很明显fos_oauth_server.storage.default
有一个定义,但是同一文件中的另一个服务列出了fos_oauth_server.storage
,但没有.default
部分,作为依赖项。这里有某种通配符吗,还是...?这是Symfony文档中没有特别清楚的地方。
答案 0 :(得分:2)
ID fos_oauth_server.storage
是指向存储服务的别名,默认情况下为fos_oath_server.storage.default
。在应用程序的配置中,您可以使用自定义服务替换此存储,如捆绑软件的Configuration或Configuration reference in the docs所示。在捆绑软件的扩展类中,您可以查看如何将应用程序配置连接到捆绑软件的服务配置以及the alias points to the configured service(默认或您自己的)中。
所有需要oauth存储的服务(包括应用程序中的类)应仅引用别名,以便可以轻松替换基础(默认)存储,而无需触及使用它的代码。
此概念广泛用于捆绑软件中,基础服务的命名约定也有所不同。另一个常见的命名方案(尤其是如果可以配置多个选项的情况下)是附加其类型的服务,例如fos_oauth_server.storage.mysql
,fos_oauth_server.storage.redis
等。除了可以更好地区分别名和别名可以指向的具体实现之外,对于.default
在Symfony中也没有特殊意义。