Symfony2服务:示例列表?

Symfony2服务:示例列表?,symfony,service,Symfony,Service,我想我理解服务的概念,但我似乎找不到实际的例子,当然,除了邮件服务。mailer的例子很好,但是如果还有其他的例子,它确实会帮助我了解整个情况。有谁能给我一份(简短的)具体案例列表,说明你应该在哪些情况下使用某项服务?我不是在这里要求代码…所有业务逻辑都必须在服务中。根据中的第46张幻灯片。瘦模型,瘦控制器,胖服务层 您应该认为一个服务不是真正的“服务”(如邮件发送者),但您已经考虑了依赖注入设计模式。因此,如果您有一个名为“Enrolled StudentAction()”的操作,那么您的控制

我想我理解服务的概念,但我似乎找不到实际的例子,当然,除了邮件服务。mailer的例子很好,但是如果还有其他的例子,它确实会帮助我了解整个情况。有谁能给我一份(简短的)具体案例列表,说明你应该在哪些情况下使用某项服务?我不是在这里要求代码…

所有业务逻辑都必须在服务中。根据中的第46张幻灯片。瘦模型,瘦控制器,胖服务层

您应该认为一个服务不是真正的“服务”(如邮件发送者),但您已经考虑了依赖注入设计模式。因此,如果您有一个名为“Enrolled StudentAction()”的操作,那么您的控制器方法应该是精简的,并且您必须在名为StudentManager的类中创建“逻辑”。studentManager执行逻辑以查找注册用户并将结果返回给控制器。控制器通过服务容器调用getEntolledStudent方法。脱钩

那么您的业务逻辑存储在哪里?@denys281:在控制器中?@Jean no,这是错误的。因为您不能从另一个控制器调用控制器,所以建议将所有业务逻辑写入服务中,以便能够从您想要的每个控制器访问该代码。no。这里的字眼一定太重了。好的,这听起来不错。但这不是Symfony医生告诉我们的方式,是吗?这是一种方法,还是唯一正确的方法?实际上这是正确的。假设您的应用程序是使用Symfony2构建的,有一天您必须使用Symfony3,服务是可重用的。因此,在服务中,您必须将所有与Symfony无关的业务代码放在一起。通常,服务方法接收对象并返回对象或true/false。另外,如果您有一些代码,它们将被两个不同的控制器调用,那么应该将其写入服务中,以避免重复写入!