gpt4 book ai didi

php - Symfony2 中的策略模式

转载 作者:可可西里 更新时间:2023-11-01 12:57:05 24 4
gpt4 key购买 nike

我正在尝试构建用于呈现各种类型页面的简单服务。基本概念是这样的:

$somePageType = new PageType(...);
$this->get('page.service')->render($somePagetype);

...将设计为 Strategy pattern .页面类型将使用 render 方法实现接口(interface),page.service 将调用它。问题是我想在页面类型类中使用 Doctrine。我在这里有什么选择?我想避免为这些类中的每一个创建服务。这可能吗?是否可以在不提供服务的情况下使它们具有容器意识?可能在未来,某些页面类型可能需要的不仅仅是 Doctrine,所以我也需要记住这一点。

最佳答案

这里的服务正是您想要的。能够为所讨论的特定策略注入(inject)依赖项。然后将特定策略注入(inject) Controller (也可以是在运行时选择策略的动态渲染器)。

ContainerAware 是一种非常糟糕的做法,它将有问题的对象耦合到容器中的所有服务。因此,我强烈建议避免使用它。

关于php - Symfony2 中的策略模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8854492/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com