Пара классов для Doctrine ORM в C5

Всё, что касается API и ядра concrete5

Пара классов для Doctrine ORM в C5

Сообщение cmsservice » 24 мар 2015, 13:47 ,  »  Сообщение:#1

Мы наткнулись на просторах гитхаба на интересный набор из двух классов сильно облегчающих использование Doctrine ORM в проектах на Concrete5 5.7
Пожалуйста зарегистрируйтесь, чтобы увидеть ссылку

Авторы питают надежды, что данный функционал со временем станет доступен как часть ядра C5, что было бы логично.

Коротко о главном
Набор содержит два класса Entity и Package

Mainio\C5\Entity\Entity
Класс от которого наследуются любые ваши классы, которые работают с данными. На самом деле, это вспомогательный класс, от него можно и не наследоваться, но он полезен для управления доступом к свойствам класса.

Mainio\C5\Entity\Package
А вот тут происходит все волшебство. :)
Это базовый класс, от которого следует наследовать контроллер вашего пакета C5. Он расширяет стандартный класс Package методами, которые обеспечивают создание/модификацию и удаление таблиц в БД согласно структуре заявленных классов. Кроме того он автоматически создает проксирующие классы во время разработки.

Пример использования можно взять тут
Пожалуйста зарегистрируйтесь, чтобы увидеть ссылку
. Только он у вас не установится с первой попытки, потребуется небольшая "пляска с бубном". :)
С уважением, Константин
http://Переделка-сайтов.РФ
Индивидуальные решения на платформе Concrete5 для театров и производственно-торговых компаний.
Аватара пользователя
cmsservice
 
Сообщения: 763
Зарегистрирован: 10 окт 2010, 00:10
Откуда: Москва

Re: Пара классов для Doctrine ORM в C5

Сообщение guyasyou » 30 мар 2015, 17:21 ,  »  Сообщение:#2

я чет не понял про Mainio\C5\Entity\Entity, он же только геттеры и сеттеры добавляет?

Вот мой наследуемый класс для работы с данными
Пожалуйста зарегистрируйтесь, чтобы увидеть ссылку


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


P.S. Тем, кто совсем не шарит: комментарии типо
Код: Выделить всё
/**
 * @Entity
 * @Table(name="EasyShopOrders")
 */

и
Код: Выделить всё
 /**
     * @Id @Column(type="integer")
     * @GeneratedValue
     */

читаются Доктрин, кешируются и данные используются для работы с БД. Чет поменяли в БД- скиньте кеш.
www.pure-web.ru - fullstack разработка сайтов и веб-приложений
Аватара пользователя
guyasyou
Администратор
 
Сообщения: 558
Зарегистрирован: 05 янв 2012, 12:29
Откуда: Новосибирск

Re: Пара классов для Doctrine ORM в C5

Сообщение cmsservice » 30 мар 2015, 17:34 ,  »  Сообщение:#3

guyasyou писал(а):я чет не понял про Mainio\C5\Entity\Entity, он же только геттеры и сеттеры добавляет?

Да, он только для сокрытия полей и второе его назначение, то что класс Mainio\C5\Entity\Package ищет потомков данного класса в указанной директории и ее поддиректориях из которых создает/обновляет структуры таблиц в БД.

Понятное дело, что можно или в Mainio\C5\Entity\Entity добавить необходимые методы по получению/сохранению объекта или породить от него наследника с
Код: Выделить всё
/** @MappedSuperclass */
и уже в нем определить необходимые общие методы. А свои классы описывающие реальные сущности уже наследовать от этого класса с общими методами.
С уважением, Константин
http://Переделка-сайтов.РФ
Индивидуальные решения на платформе Concrete5 для театров и производственно-торговых компаний.
Аватара пользователя
cmsservice
 
Сообщения: 763
Зарегистрирован: 10 окт 2010, 00:10
Откуда: Москва


Вернуться в Разработка Concrete5

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron