Zend Framework 2 と Doctrine 2 を使用するプロジェクトに取り組んでいます。
データベースを維持するための次のプロセスがあります。
- エンティティの XML マッピング ファイルを作成する
- コマンド「orm:generate-entities」を使用してエンティティを生成します
- コマンド「orm:schema-tool:update --force」を使用してデータベースを生成します
生成されたエンティティをカスタム ビジネス コードで強化したい : 生成されたエンティティを編集するだけでもかまいませんが、新しいエンティティが生成されるたびにカスタム コードが失われ、より良いワークフローを探しています。
基本的に、これは私ができるようにしたいことです:
生成されたエンティティ:
namespace My\Base\Entity;
class Cart
{
private $quantity;
public function setQuantity($quantity)
{
$this->quantity = $quantity;
return $this;
}
public function getQuantity()
{
return $this->quantity;
}
}
強化されたエンティティ:
namespace My\Entity;
class Cart extends \My\Base\Entity\Cart
{
public function setQuantity($quantity)
{
$quantity = filter_var(
$quantity,
\FILTER_VALIDATE_INT, array('min_range' => 1)
);
if ($quantity === false) {
throw new \InvalidArgumentException(
'Quantity should be an integer higher than 0'
);
} else {
return parent::setQuantity($quantity);
}
}
}
Doctrine は \My\Entity\Cart がエンティティ自体であると想定しているため (基本エンティティの拡張のみ)、これは機能しません。
それに似たものを実装する方法はありますか?