Для блага других, кто может заглянуть сюда, я собираюсь ответить на свой вопрос ...
В итоге я установил последнюю версию Propel (1.5). Ян Фабри (выше) упомянул, что в ранее сгенерированных моделях могут быть остаточные элементы (из проекта SF), и это тоже было моей проблемой. Поэтому я запустил «реверс» в базе данных и сгенерировал новые схемы / модели.
Я, конечно, держу исходные сгенерированные модели под рукой, так как я повторно использую существующую базу данных. Я также запустил сборку phpDoc для предыдущего приложения, включая сгенерированные модели Propel, и это служит отличным инструментом для просмотра того, что было сделано ранее. В качестве «побочного» совета я также запустил phpDoc на своих новых сгенерированных моделях, и теперь у меня есть своего рода «справочный документ» для моего нового «пользовательского db api», сгенерированного из сборки Propel ... действительно круто!
Уже есть некоторые проблемы со схемой, такие как отсутствие поддержки типов ENUM ... но в версии 1.6 Propel. Оригинальные модели служат рабочим примером того, как Propel использовался с существующей базой данных. Я предвижу редактирование «вручную» нескольких записей в новой схеме, когда возникнут проблемы.
v1.5 в Propel имеет новый API запросов (на который указывает Frosty Z), который заменяет (или улучшает) критерии и «peer» в моем новом приложении. Исходный код все еще служит хорошей моделью (а не моделью MVC) того, как база данных была интегрирована в логику приложения ранее, но я обнаружил, что новая версия API запроса Propels будет большой помощью.
Я читал, что Propel где-то не поддерживает 'объединения', но я вижу, что эта версия поддерживает, и в Propel есть много других новых и полезных функций. Примечательно то, как новый API обрабатывает отношения. Это все в документации в Propel, и я очень хочу использовать это. База данных довольно большая и сложная для «ручного» интерфейса, поэтому «обратная» функция Propel также была очень удобной.
Запросы, подобные этому:
$Users = UsersQuery::create()
->filterByLastName($LastName)
->find(); // $Users is a PropelCollection object
return $Users;
довольно «приятно», как сказал Frosty Z, и экономит много кода по сравнению с использованием Zend_Db или прямого PHP / MySQL, и кажется более простым, чем прежние «критерии», «peer». Этот фрагмент был взят из Propel Docs и решает проблему, которая заставила меня искать решение в другом месте; условная находка показала, что его размер будет расти сравнительно. И я уже вижу, как легко будет фильтровать результаты в соответствии с ACL.
Мой ответ - это объяснение того, почему я не использую оригинальные модели; отсутствие новых методов и боязнь остаточного кода, который может вызвать ошибки или головные боли, и почему я застрял с Propel (помимо того факта, что он кажется действительно хорошим); У меня есть пример работающего ORM. На самом деле, я могу сказать, что оба ответа выше - то, с чем я пошел. Спасибо, ребята!