Zend Framework. MVC. Как правильно кодить 'жирные' модели?
Я использую не Zend, а Yii, но суть та же. И я между моделью и контроллером делаю еще один слой абстракции - слой сервисов. Это просто классы, методы которых выполняют некоторые логические транзакции, манипулируя моделями и другими сервисами. Удобно переиспользовать, удобно тестировать, нет проблемы с огромными файлами.
То-есть Можно просто создать класс class Service_Advertisement{
   public static function action1(){ /**Здесь манипулируем моделями и параметрами запроса**/   }
   public static function action2(){  /**--//--**/  }
}
а в контроллереclass AdvertisementController extend Zend_Controller_Action
{
  public function createAction(){
       //render in view or render in json format (auto detected context)
       return Service_Advertisement::action1($this->_getParams());
  }
}
Кстати у вас в Yii вижу концепция статических методов в моделях. Это удобно по сути. Но это правильно или нет ????
В зенде плохо, так как обертка ядра, не в статике и адаптер пдо инитится в конструкторе при создании обьекта
и приходится каждый раз писать$model = new Model_Advertisement();
$advertisementObj = $model->findRow($id);
$model = new Model_Users();
$userObj = $model->findRow($user_id);
$model = new Model_Stat();
$model->calculateStatisticInformation($advertisementObj,$userObj);
На Статике это бы проще выглядело мне кажется .