Php 在Symfony中,仅为服务创建捆绑包是否是一种良好的编程实践?

Php 在Symfony中,仅为服务创建捆绑包是否是一种良好的编程实践?,php,model-view-controller,symfony,Php,Model View Controller,Symfony,我有一个symfony应用程序,提供基于REST的服务。我有一个模块,负责用户登录/注销/注册操作,称为UserBundle 我还有其他捆绑包,在用户登录后提供资源(并提供令牌散列) 现在,对于每个请求的资源,客户机都会发回需要验证的令牌。我应该将此身份验证功能放置在何处?我的意思是,我知道它需要一个可以注入多个捆绑包的服务,但这是否意味着我最好创建自己的捆绑包?我将来可能需要的其他服务呢?如果我为每一个都创建一个包,那么我的代码组织将很快变得丑陋 有什么建议吗 我将把服务放在UserBundl

我有一个symfony应用程序,提供基于REST的服务。我有一个模块,负责用户登录/注销/注册操作,称为UserBundle

我还有其他捆绑包,在用户登录后提供资源(并提供令牌散列)

现在,对于每个请求的资源,客户机都会发回需要验证的令牌。我应该将此身份验证功能放置在何处?我的意思是,我知道它需要一个可以注入多个捆绑包的服务,但这是否意味着我最好创建自己的捆绑包?我将来可能需要的其他服务呢?如果我为每一个都创建一个包,那么我的代码组织将很快变得丑陋


有什么建议吗

我将把服务放在UserBundle中,因为UserBundle处理身份验证

一般来说,我喜欢将服务放入它们最相关的包中。我通常也有一个“默认”捆绑包,我将有限数量的真正通用的服务、实体、控制器等聚合到其中。理论上,任何进入默认状态的东西都可以在另一个项目中通用,并且几乎总是多个其他捆绑包所需要的东西。偶尔我会在默认情况下使用一些零碎的东西,这些东西成熟到一定程度,在一个更具体但仍然通用的捆绑包中会更有意义(类似于你的UserBundle..我想这可能是可以放到多个项目中的东西);这些将被重构并相应地命名


曾经,对于我认为是“模块”的任何东西,我都会划分出新的捆绑包。然而,这些天来,我试图限制应用程序中捆绑包的数量。。我发现这使代码更清晰,更易于管理;特别是因为我对任何给定模块的“边界”的想法总是错误的,我最终会移动代码。另外,主要在一个核心包中工作会使代码导航更加简单。

非常感谢您解释您的思维过程和包组织。这很有帮助。干杯,这是真的!在花了一段时间试图找到将代码放在何处之后,您就会明白“bundle”在大多数情况下都是无用的(谈论“app”bundle)。您完成了将它们自然地放在一个原始文件夹中,该文件夹的名称空间只是逻辑的,而不是“抽象”的无意义包中。多亏了DI容器,在包内或包外定义服务都很容易。