我真的是Symfony 2的新手,来自CI,试图让我了解所有东西的正确位置。我有一个捆绑包,可以处理我所拥有的几个主页面类型,但这里有一个我在多个页面中使用的页面元素,每个页面可以有不同的配置。
解决这个问题的逻辑方法(就我所见)是在所有页面都可以使用的地方有一个单独的类。。。这是不允许用户访问的,所以我猜不应该进入控制器,但我应该把这个类放在哪里?
- 在我的捆绑包中制作一个"核心"类型的文件夹。是否有为此命名的最佳实践
- 它应该放在供应商文件夹中,还是只用于第三方捆绑包
- 制作另一个捆绑包以某种方式使用此代码。。。上一两节课似乎有点过头了
- 其他
我想您需要的是创建一个服务。您可以创建自己的类,该类具有自己的逻辑,并使用控制器中的服务容器检索它。以下示例可在Symfony Service Container Docs 上找到
$mailer = $this->get('my_mailer');
$mailer->send('ryan@foobar.net', ...);
要使该类可用,您必须将其添加到捆绑包的service.yml文件中,如下所示:
services:
my_mailer:
class: "%my_mailer.class%"
arguments: ["%my_mailer.transport%"]
您可以通过参数向类中添加任何其他服务或参数
更多信息请点击此处:http://symfony.com/doc/current/book/service_container.html