Лучший способ генерировать модели из yaml в Doctrine1.2? - PullRequest
0 голосов
/ 08 июня 2011

Здравствуйте. В последнее время я работаю с доктриной 1.2 и выполняю много работы из командной строки. Проблема в том, что когда я работаю над проектом, я сначала меняю свою схему. Это было бы хорошо, но когда я запускаю generate-models-from-yaml, он перезаписывает мои классы моделей, и часто у меня есть код внутри классов моделей.

Следует отметить, что я использую Zend Framework и Doctrine 1.2 с пакетом ZFDoctrine. Поэтому я использую инструмент zf с провайдером zfDoctrine. Фактическая команда, которую я запускаю -

zf generate-models-from-yaml doctrine  

Спасибо заранее, John

1 Ответ

0 голосов
/ 08 июня 2011

Один из способов решения этой проблемы - держать свой пользовательский код подальше от часто переписываемых классов и помещать его в другой класс, который либо расширяет базовую модель, либо использует данную модель.

Итакесли у вас есть 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();
    }
}

Это действительно зависитЧто касается характера вашей бизнес-логики, то если рассматриваемая логика является частью природы модели, то, возможно, первый подход лучше, в противном случае, если логика просто использует или иным образом «имеет» модель, тогда второй подходлучше.

Конечно, этот ответ совершенно не зависит от Доктрины или рамок, он больше похож на "ОО-философию":)

...