带有DBAL的Symfony2实体(无ORM)

时间:2015-05-20 06:33:08

标签: symfony orm doctrine-orm dbal

我正在开发一个SF2项目,我不能将Doctrine2用作ORM,这意味着我已经拥有一个包含表和数据的数据库。我必须在我的控制器中使用纯SQL(我目前正在使用DBAL来执行此操作),并且我必须创建对象以表示事物。

当我以前使用Doctrine2时,我通过app / console doctrine创建实体:generate:entity和Doctrine2正在处理整个内容(更新,持久......)

但是现在,因为我正在使用DBAL,我怎样才能创建对象(即使我不使用ORM,我可以将其称为实体吗?)以满足我的需求吗?

我计划像往常一样:在我的包中创建一个实体文件夹,实体作为没有ORM注释的对象,并创建一个方法,我使用SQL(数组中的查询结果)从数据库中检索数据并保湿它使用来自对象的getter / setter。

这是一个好主意还是你有更好的解决方案?我从SF2开始,我读到有些人创建服务来检索数据,然后使用数据转换器将数据转换为对象。

谢谢。

2 个答案:

答案 0 :(得分:2)

您正在描述Active Record模式。为此,您可以使用与Symfony本机集成的Propel。在Symfony's official documentation上阅读相关内容。

我也建议你使用ORM。您可以根据需要使用现有表设置映射:如果在实体中不需要它们,甚至可以省略某些字段。而Doctrine ORM将为您完成所有艰苦的工作。

答案 1 :(得分:0)

通过从数据库创建类,您仍然可以在不更改数据库的情况下使用ORM。您应该阅读this in the symfony documentation