1. Есть люди, называющие таблички с префиксом проекта, то есть допустим проект у нас зовется murzik и таблицы в БД названы соответственно murzik_article, murzik_user, murzik_issues. Оставляя в стороне адекватность таких наименований, Propel вполне себе способен исправить эту беду используя опцию phpName, где мы уже на уровне ORM определяем что класс статьи у нас зовутся Article и выборка будет осуществляться как Article::doSelect(...), а не $artsCreatedToday = Doctrine_Core::getTable('murzik_article')->getCreatedToday(); Или я не прав и в getTable идет пареметром не имя таблицы, а алиас, который где-то мапится? 2. Есть ли аналог Criteria, для универсального метода уточнения запроса? К примеру: // все котята, которых можно продать Cat::doSelectSellableKittens(); // только зеленоглазые $c = new Criteria(); $c->add(KittenPeer::EYE_COLOR, 'green'); Cat::doSelectSellableKittens($c); 3. Есть ли общая точка выполнения запроса, такая как doSelectStmt в Propel, где я могу для всего аппликейшена устроить фильтрацию по своему усмотрению? 4. Смогу ли я используя Doctrine прозрачно для всей модели сменить в базе название поля, ограничившись лишь правкой маппинга имени поля в классе таблицы? Пример, как это устроено в Propel: Код (Text): /** the column name for the F_ENABLED field */ // было так: //const F_ENABLED = 'murzik_article.F_ENABLED'; //Стало так: const F_ENABLED = 'murzik_article.IS_ENABLED';