0

私が取り組んでいるプロジェクトで Doctrine ORM を使用しています。オブジェクト インターフェイスをデータベースに提供するというアイデアは素晴らしいのですが、エンティティ クラスの実装について質問があります。

次の User エンティティの例を考えてみましょう。

<?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)
}

さて、それはすべて問題なくダンディですが、コメントの1つでスペルミスをするとどうなるか疑問に思っていました。たとえば、次のように書いています。

@Table(name="users)

それ以外の

@Table(name="users")

コメントであるため、IDE は文句を言いません。「エンティティの生成」コマンドを実行するとエラーが発生するだけです (これは、コードの生成、テーブル、列、および関係の作成のバックグラウンドで魔法を行います)。

私の質問は次のとおりです: ORM のエンティティ定義はエラーが発生しやすいのでしょうか? 構文が有効かどうかは実際にはチェックされず、エラーは「生成」時にのみ生成されるためです。開発の早い段階でミスを自動化/チェックする方法はありますか?

ありがとう!

4

1 に答える 1

0

IMO、強調した問題は、PHP で間違った変数を使用することと比較できます ($var2 ではなく $var1)。さらに言えば、すべての動的言語で。

ただし、単体テストを作成すると、強調表示された問題を回避できます。

于 2012-07-16T14:55:13.087 に答える