Symfony2: get Doctrine in a generic PHP class(Symfony2:在通用 PHP 类中获取 Doctrine)
问题描述
在 Symfony2 项目中,当您使用 Controller 时,您可以通过在 this<上调用
getDoctrine()
来访问 Doctrine/code>,即:
In a Symfony2 project, when you use a Controller, you can access Doctrine by calling getDoctrine()
on this
, i.e.:
$this->getDoctrine();
这样,我就可以访问这样一个Doctrine Entity的仓库了.
In this way, I can access the repository of such a Doctrine Entity.
假设在 Symfony2 项目中有一个通用的 PHP 类.如何检索 Doctrine ?我想应该有这样的服务可以得到它,但我不知道是哪一个.
Suppose to have a generic PHP class in a Symfony2 project. How can I retrieve Doctrine ? I suppose that there is such a service to get it, but I don't know which one.
推荐答案
你可以将这个类注册为一个服务 并向其中注入任何其他服务.假设你有 GenericClass.php 如下:
You can register this class as a service and inject whatever other services into it. Suppose you have GenericClass.php as follows:
class GenericClass
{
public function __construct()
{
// some cool stuff
}
}
您可以将其注册为服务(通常在您的包的 Resources/config/service.yml|xml
中)并将 Doctrine 的实体管理器注入其中:
You can register it as service (in your bundle's Resources/config/service.yml|xml
usually) and inject Doctrine's entity manager into it:
services:
my_mailer:
class: Path/To/GenericClass
arguments: [doctrine.orm.entity_manager]
它会尝试将实体管理器注入(默认情况下)GenericClass
的构造函数.所以你只需要为它添加参数:
And it'll try to inject entity manager to (by default) constructor of GenericClass
. So you just have to add argument for it:
public function __construct($entityManager)
{
// do something awesome with entity manager
}
如果您不确定应用程序的 DI 容器中有哪些服务可用,您可以使用命令行工具查找:php app/console container:debug
,它会列出所有可用的服务以及它们的别名和类.
If you are not sure what services are available in your application's DI container, you can find out by using command line tool: php app/console container:debug
and it'll list all available services along with their aliases and classes.
这篇关于Symfony2:在通用 PHP 类中获取 Doctrine的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Symfony2:在通用 PHP 类中获取 Doctrine
基础教程推荐
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- 超薄框架REST服务两次获得输出 2022-01-01
- 在多维数组中查找最大值 2021-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01