Мы разрабатываем существенное веб-приложение PHP с использованием среды Zend.
В это время продукт начинает стабилизироваться, и мы избегаем быстрой и грязной настройки, чтобы избежать регрессий. В частности, мы сейчас работаем над единой общей базой данных, которую каждый редактирует. Мы хотим избавиться от этого как можно скорее.
Структура Zend, похоже, не поддерживает классический механизм RAD (Djangoish), в котором вы определяете свои модели данных, а затем создает таблицы для вас. Поэтому мы думаем об использовании внешнего инструмента ORM, который сделает это.
Мы могли бы иметь наши схемы и исходные приборы, определенные в простом SQL, но это: a) подробный b) подверженный ошибкам c) слишком низкий уровень и d) проблематично, потому что мы должны поддерживать разные версии для каждого поддерживаемого бэкэнд базы данных.
Поэтому мы думаем использовать ORM, например Doctrine или Propel, для определения наших моделей и создания таблиц с их исходными данными с использованием диалекта выбранной структуры. Приложение использует инструмент Zend для ORMing, поэтому согласованность между обоими инструментами должна поддерживаться вручную, но поскольку изменения более постепенны, теперь это не похоже на большую проблему.
Итак, далеко, мы оцениваем Doctrine и Propel для этой задачи. Любые предложения о других ORM, которые мы пропустили? Может быть, совсем другой подход для этой задачи?
Благодаря!
Гонсало
Я действительно люблю RedBean. Вы сохраняете свои модели баз данных в чистом php и отслеживаете все.
RedBeanPHP – инструмент ORM с открытым исходным кодом для PHP. Основное внимание уделяется простоте и простоте использования. Уникальность RedBean заключается в том, что он мгновенно создает схему базы данных. Он сканирует ваши данные и настраивает типы столбцов для соответствия вашим свойствам объекта. Если ваши модели стабилизированы, вы можете заморозить базу данных. Таким образом, RedBean легко развивается, но также чрезвычайно быстро работает на производственных серверах.
Поскольку я нашел этот ORM, я больше не использую доктрину.