2011-06-08 21 views
0

你好我最近一直在學習教條1.2,並且從命令行做了一些工作。問題是,當我在一個項目上工作時,我首先改變了我的模式。這樣可以,但是當我運行generate-models-from-yaml時,它會覆蓋我的模型類,以及很多時間我在模型類中有代碼。在Doctrine1.2中更好地從yaml生成模型?

我應該注意到我使用zend framework和doctrine 1.2與ZFDoctrine包。所以我使用zfDoctrine Provider的zf工具。實際的命令我跑在事先

zf generate-models-from-yaml doctrine 

感謝, 約翰

回答

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-哲學」 :)的線條更

+0

有道理謝謝 – John 2011-06-11 02:39:06