Symfony2 Entity с DBAL (без ORM)
Я работаю над проектом SF2, где я не могу использовать Doctrine2 в качестве ORM, то есть у меня уже есть база данных с таблицами и данными. Я должен использовать простой SQL в моем контроллере (в настоящее время я использую DBAL для этого), и мне нужно создать объект для представления вещей.
Когда я работал с Doctrine2, я создавал Entity с помощью приложения / консоли doctrine:generate:entity, а Doctrine2 обрабатывает весь процесс (обновление, сохранение...)
Но теперь, когда я использую DBAL, как я могу создать объект (могу ли я назвать его сущностью, даже если я не использую ORM?), Чтобы соответствовать моим потребностям?
Я планировал сделать как обычно: создать папку с сущностями в моем комплекте с сущностями в качестве объектов без аннотаций ORM, и создать метод, в котором я получаю данные из базы данных с использованием SQL (результат запроса в массиве) и гидратирую его с помощью геттеров / сеттеры с объекта.
Это хорошая идея или у вас есть лучшее решение? Я начинаю с SF2 и читаю, что некоторые люди создают сервис для извлечения данных, а затем используют преобразователь данных для преобразования данных в объект.
Спасибо.
2 ответа
Вы описываете шаблон Active Record. Для этого вы можете использовать Propel, который имеет встроенную интеграцию с Symfony. Читайте об этом в официальной документации Symfony.
Также я бы порекомендовал вам использовать ORM. Вы можете настроить отображение с существующими таблицами по своему усмотрению: вы можете даже опустить некоторые поля, если они вам не нужны в сущности. И Doctrine ORM сделает всю тяжелую работу за вас.
Вы все еще можете использовать ORM, не изменяя свою базу данных, создавая классы из своей базы данных. Вы должны прочитать это в документации Symfony