“ .default”在Symfony服务ID中是否有特殊意义?

时间:2019-02-13 02:54:20

标签: php symfony fosoauthserverbundle

我正在查看FriendsOfSymfony/FOSOAuthServerBundle中的一些服务定义,对我来说很明显fos_oauth_server.storage.default有一个定义,但是同一文件中的另一个服务列出了fos_oauth_server.storage,但没有.default部分,作为依赖项。这里有某种通配符吗,还是...?这是Symfony文档中没有特别清楚的地方。

1 个答案:

答案 0 :(得分:2)

ID fos_oauth_server.storage是指向存储服务的别名,默认情况下为fos_oath_server.storage.default。在应用程序的配置中,您可以使用自定义服务替换此存储,如捆绑软件的ConfigurationConfiguration reference in the docs所示。在捆绑软件的扩展类中,您可以查看如何将应用程序配置连接到捆绑软件的服务配置以及the alias points to the configured service(默认或您自己的)中。

所有需要oauth存储的服务(包括应用程序中的类)应仅引用别名,以便可以轻松替换基础(默认)存储,而无需触及使用它的代码。

此概念广泛用于捆绑软件中,基础服务的命名约定也有所不同。另一个常见的命名方案(尤其是如果可以配置多个选项的情况下)是附加其类型的服务,例如fos_oauth_server.storage.mysqlfos_oauth_server.storage.redis等。除了可以更好地区分别名和别名可以指向的具体实现之外,对于.default在Symfony中也没有特殊意义。