Чуть-чуть личного опыта. Зенд — это мегауниверсальный фреймворк. А значит мегабольшой и мегасложный. И такое ощущение, что создавался архитекторами для архитекторов.
Поэтому, изучая его, вы не найдёте «единственных» (рекомендованных) рецептов как сделать ту или иную концептуальную вещь.
Поэтому у ваших моделей будет несколько «лишних» файлов (те самые _Table, _Row, _Rowset, плюс бывают _Gateway, _Factory, ...)
Поэтому слишком много времени будет уходить на обдумывание, как же назвать/сделать/куда поместить «простые» вещи.
Поэтому вы не сможете найти пару десятков открытых проектов, чтобы посмотреть, как же сообщество решило делать какую-нибудь штуку (эта штука будет сделана по-разному в найденных проектах).
Поэтому в багтрекере вы будете видеть тикеты, открытые по нескольку лет с риторическими вопросами «Есть какой-нибудь прогресс по этой проблеме?».
Поэтому на первых порах, пока ещё не освоили фреймворк, сделайте как можно проще, без усложнений. Если вам надо делать запросы к базе, пусть пока это будет вот так
$db = Zend_Db_Table_Abstract::getDefaultAdapter();
$query = "SELECT ...";
$db_result = $db->fetchAll($query);
потом может вам понравится вот так
$o_select = $o_db->select()
->from("...", $a_columns)
->where('... = ?', ...)
->order('... ASC');
$a_result = $o_db->fetchAll($o_select);
потом так
public function fetchAllBy...($...)
{
...
return new ..._Model_...Set(...);
}
Просто пишите как знаете на текущем уровне и с получением очередного «левел апа» будете знать, как же приспособить этот фреймворк для своих нужд.