在编写symfony2应用程序的过程中,我需要为所有数据库交互编写自定义模型图层,并且我想使用Doctrine DBAL,而不是完整的ORM。这是因为我没有设计数据库,必须使用一组预定义的查询。symfony2 - DBAL自定义“模型”图层
,我感到我可以叫一个服务从控制器DBAL连接,如:
$results = $this->get('my_service')->someMethod();
已经定义的服务为:
的src/Acme的/ BUNDLENAME /资源/配置/services.yml
services:
my_service:
class: Acme\BundleName\Entity\BaseEntity
arguments: [@database_connection]
的src/Acme公司/ BUNDLENAME /实体/ BaseEntity.php
namespace Acme\BundleName\Entity;
use Doctrine\DBAL\Connection;
class BaseEntity
{
private $connection;
public function __construct(Connection $dbalConnection) {
$this->connection = $dbalConnection;
}
public function someMethod(){
//method logic
}
}
现在,我怎么能叫从我的自定义模型类的服务,这样我就可以使用用于执行原SLQ的DBAL连接?
我还得到,我可以定义每个类作为服务,将有dbal连接注入,但这会导致我有几十个定义的服务(每个模型类一个)只用于共享dbal连接。
理想情况下,我希望我的类可以像许多其他框架一样使用自定义逻辑映射数据库表。我也知道我可以在Doctrine orm中定义自定义的“Repository”,但是我只需要坚持使用DBAL层。
您可以使用和Symfony的DBAL和学说库与您的模型工作,所以你的问题是什么? –
如何从自定义类(我的模型类)获取DBAL连接? – Carlo
你的意思是'定制班'是一项服务吗? –