我在一個項目上使用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本身就是一個實體(儘管它只是一個擴展基礎實體)。
有什麼辦法來實現類似的東西?