你好我最近一直在使用doctrine 1.2并且从命令行做了大量的工作。问题是,当我在项目上工作时,我首先改变了我的模式。这没关系,但是当我运行generate-models-from-yaml时,它会覆盖我的模型类,而且很多时候我在模型类中都有代码。
我应该注意,我在ZFDoctrine包中使用了zend框架和doctrine 1.2。所以我将zf工具与zfDoctrine Provider一起使用。我运行的实际命令是
zf generate-models-from-yaml doctrine
提前致谢, 约翰
答案 0 :(得分:0)
解决此问题的一种方法是使自定义代码远离经常重写的类,并将其放在扩展基本模型或使用相关模型的不同类中。
因此,如果你有一个可以随时重写的BlogModel,你总能拥有一个
class BlogWrapper extends BlogModel{
function __construct(){
parent::construct();
}
public function myBusinessLogic(){
$this->functionFromBlogModel();
}
}
或(也许更好 - 但这只是我的意见)
class MyBusinessLogic {
private $model;
function __construct(){
$this->model = new BlogModel();
}
function doStuff($foo){
$bar = $this->model->get($foo);
$bar->doSomething();
$bar->save();
}
}
这实际上取决于业务逻辑的性质,如果所讨论的逻辑是模型本质的一部分,那么第一种方法可能更好,否则,如果逻辑只是使用或“拥有”模型,那么第二种方法更好。
当然,这个答案完全独立于学说或框架,它更像是“OO哲学”:)