ORM的实体定义是否容易出错?

时间:2012-07-16 01:12:49

标签: orm doctrine-orm syntax-error

我在我正在开发的项目中使用Doctrine ORM。虽然为db提供对象接口的想法很好,但我对实体类的实现有疑问。

让我们考虑一下这个用户实体的例子:

<?php

/**
 * @Entity @Table(name="users")
 **/
class User
{
    /**
     * @Id @GeneratedValue @Column(type="integer")
     * @var int
     **/
    protected $id;

    /**
     * @Column(type="string")
     * @var string
     **/
    protected $name;

    /**
     * @OneToMany(targetEntity="Bug", mappedBy="reporter")
     * @var Bug[]
     **/
    protected $reportedBugs = null;

    /**
     * @OneToMany(targetEntity="Bug", mappedBy="engineer")
     * @var Bug[]
     **/
    protected $assignedBugs = null;

    // .. (other code)
}

现在,这一切都很精致,但是我想知道如果我在其中一条评论中犯了拼写错误会发生什么。我写道:

@Table(name="users)

而不是

@Table(name="users")

IDE不会因为它的注释而抱怨,而且我只会在运行“generate entities”命令时出错(这在生成代码,创建表,列和关系的背景中起到了作用)。

所以我的问题是: ORM的实体定义是否容易出错?因为如果语法有效,则确实没有检查语法,并且只在'生成'时生成错误。有没有办法在开发早期自动化/检查错误?

谢谢!

1 个答案:

答案 0 :(得分:0)

IMO,您突出显示的问题可以与使用PHP中的错误变量进行比较($ var1而不是$ var2)。就此而言,在所有动态语言中。

但是如果你编写单元测试,你可以避免你突出显示的问题。

相关问题