我在一个项目上使用Zend Framework 2和学说工作2扩展学说2个实体
我有维护数据库以下过程:
- 我写XML映射文件我的实体
- 我生成使用该命令的实体“ORM:生成实体”
- 我生成使用下面的命令数据库“ORM:架构工具:更新--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本身就是一个实体(尽管它只是一个扩展基础实体)。
有什么办法来实现类似的东西?