Можно ли создавать классы моделей с использованием Doctrine 2 непосредственно из базы данных? - PullRequest
6 голосов
/ 11 июля 2011

Я в процессе обновления от Doctrine 1.1.4 до Doctrine 2.0.6 в моем приложении Zend.Я установил инструмент командной строки Doctrine 2.

В Doctrine 1.1.4 я сгенерировал классы моделей непосредственно из базы данных (используя Doctrine :: generateModelsFromDb ()), возможно ли это в Doctrine 2, или выполнитеМне нужно пройти через процесс «отображения», то есть путем предоставления аннотаций Docblock, структур XML или YAML таблиц.

Причина, по которой я спрашиваю это, заключается в том, что в Doctrine 2 есть опция setAutoGenerateProxyClass, я получилТакое впечатление, что это означает, что он будет генерировать прокси-классы с нуля.

Оцените помощь.

Ответы [ 2 ]

6 голосов
/ 11 июля 2011

Автогенерация прокси-классов в основном означает, что Doctrine 2 будет автоматически генерировать «прокси-классы» для ваших сущностей, а не только генерировать их вручную с использованием generate-прокси. Прокси используются, когда у вас есть отношения в ваших сущностях, и они должны быть загружены ленивыми.

Для генерации картографической информации из базы данных вы можете использовать convert-mapping:

php doctrine orm:convert-mapping --from-database yml /path/to/mapping-path-converted-to-yml

Имейте в виду, что это рекомендуется использовать только в качестве отправной точки. Драйвер базы данных не может правильно генерировать сопоставления для всех возможных комбинаций параметров, поэтому вам, вероятно, следует просто выполнить это один раз, а затем написать сопоставления самостоятельно.

См. Руководство по Doctrine 2 "Обратный инжиниринг базы данных"

3 голосов
/ 20 июля 2011

Вы можете использовать «аннотацию» в качестве драйвера, если вы хотите получить сгенерированные объекты:

php doctrine orm:convert-mapping --from-database annotation generatedModels
...