Access services inside a regular class(在普通班级内访问服务)
问题描述
我的 Symfony2 项目中有一个常规课程:
I have a regular class in my Symfony2 project:
class RangeColumn extends Column{
//...
}
现在这个类里面有一个渲染函数,我想在其中使用 Twig 或 Symfony2 的翻译服务来渲染一个特定的模板.如何以正确的方式访问这些服务?
Now inside this class is a render function, in which I'd like to use Twig or the Translation Service of Symfony2 to render a specific template. How do I access this services in a proper way?
推荐答案
使用 依赖注入.这是一个非常简单的概念.
Use dependency injection. It's a really simple concept.
您应该简单地将所需的服务传递(注入)给您的班级.
You should simply pass (inject) needed services to your class.
如果依赖项是强制,则将它们传递给构造函数.如果它们是可选,请使用setter.
If dependencies are obligatory pass them in a constructor. If they're optional use setters.
您可能会更进一步,将您的类的构造委托给依赖注入容器(从中创建一个服务).
You might go further and delegate construction of your class to the dependency injection container (make a service out of it).
服务与您的常规"课程没有什么不同.只是他们的构造委托给了容器.
Services are no different from your "regular" class. It's just that their construction is delegated to the container.
这篇关于在普通班级内访问服务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在普通班级内访问服务
基础教程推荐
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- 在多维数组中查找最大值 2021-01-01
- 超薄框架REST服务两次获得输出 2022-01-01
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01