Symfony 服务装饰,它到底意味着什么?

问题描述 投票:0回答:1

我是 Symfony 的新手。我读到了有关服务装饰的内容,但我仍然不明白。在 Symfony 中装饰服务实际上意味着什么?

symfony symfony4
1个回答
-1
投票

IMO,装饰是一个很棒的 POO 模式,它允许你改变(装饰)第三方的行为。在 Symfony 中,这对于改变第三方服务(本质上是捆绑)的行为很有用。

正如 Cerad 在评论中提到的那样,如果您不理解 Symfony 文档,您可能需要从查找装饰模式开始。 Symfony 文档解释了如何使用它,但没有解释概念。

如果您正在寻找一个很好的示例,我推荐您这个 Symfonycast 教程:Ryan 解释了他如何使用装饰模式来更改 Api 平台状态提供程序的行为。在本教程中,Ryan 需要 DTO 资源,但原始项目提供程序返回一个实体。 Ryan 使用装饰模式来改变行为。由于

services.yaml
文件中的声明,Symfony 将调用装饰器服务而不是原来的服务。在他的
provide
方法(装饰原始方法的方法)中,Ryan 调用原始
provide
方法,但他没有返回实体,而是将其映射到 DTO 资源,然后返回此结果。

© www.soinside.com 2019 - 2024. All rights reserved.