0

您好,我最近一直在使用学说 1.2,并从命令行完成了很多工作。问题是,当我在做一个项目时,我首先会改变我的架构。这很好,但是当我运行 generate-models-from-yaml 时,它会覆盖我的模型类,并且很多时候我在模型类中都有代码。

我应该注意,我将 zend 框架和教义 1.2 与 ZFDoctrine 包一起使用。所以我将 zf 工具与 zfDoctrine Provider 一起使用。我运行的实际命令是

zf generate-models-from-yaml doctrine  

在此先感谢,约翰

4

1 回答 1

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();
    }
}

这实际上取决于您的业务逻辑的性质,如果所讨论的逻辑是模型性质的一部分,那么也许第一种方法更好,否则,如果逻辑只是使用或以其他方式“具有”模型,那么第二种方法更好。

当然,这个答案完全独立于 Doctrine 或框架,它更符合“OO-philosophy”:)

于 2011-06-08T11:12:24.743 回答