1

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

一旦用户登录(并提供了令牌哈希),我还有其他捆绑包提供资源。

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

有小费吗?

4

1 回答 1

2

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

一般来说,我喜欢将服务放入与它们最相关的包中。我通常还有一个“默认”包,我将有限数量的真正通用的服务、实体、控制器等聚合到其中。理论上,默认的任何东西都可以在另一个项目中通用,并且几乎总是超过另一捆。有时,我在 Default 中的一些零碎的东西已经成熟到一个点,它们在更具体但仍然通用的捆绑包中更有意义(类似于你的 UserBundle.. 我认为它可能可以放入多个项目中) ); 这些被重构并相应地命名。

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

于 2012-05-21T02:50:36.113 回答