私が取り組んでいるプロジェクトで 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 のエンティティ定義はエラーが発生しやすいのでしょうか? 構文が有効かどうかは実際にはチェックされず、エラーは「生成」時にのみ生成されるためです。開発の早い段階でミスを自動化/チェックする方法はありますか?
ありがとう!