ORM PPT, 375 КБ

advertisement
Новое ядро и ORM
Тушинский Юрий
Технический директор
Битрикс
Основные принципы новой
платформы
Использование последних версий серверного ПО:
PHP 5.4, MySQL 5.
Полноценное использование ООП.
Использование исключений (exceptions).
Отказ от поддержки исторических хвостов.
Все конечные операции по интеграции: шаблоны
компонент, шаблоны сайта, простейшие компоненты
- останутся легкодоступны для начального уровня
программирования и не очень внешне изменятся.
Bitrix Framework
Библиотека классов.
ORM.
Новый жизненный цикл страницы, глобальные объекты.
Провайдеры объектов для основных операций.
События везде, параметризированные события, почтовые
события.
Классы для работы с мульти-загрузчиком файлов
(Aurigma), типовые интерфейсы.
Глобальный runtime объект
•
Далекий аналог $APPLICATION
•
Содержит в себе объекты-интерфейсы:
•
Для работы с СУБД (ORM)
•
Файловая система
•
Обработчики текста
•
Логирование
•
Компонентная модель, обработчик шаблонов
•
Работа с кешем
•
Обработчики URL
•
Текстовый процессор
•
Для аутентификации и авторизации, локализации, …
Глобальный runtime объект
• Некоторые объекты-интерфейсы можно переопределить
своими реализациями (провайдеры). Например,
переопределить авторизацию, шаблонизатор или способ
хранения данных кеша:
ORM
Объектно-реляционное отображение —
технология программирования, которая
связывает базы данных с концепциями объектноориентированных языков программирования,
создавая «виртуальную объектную базу данных».
Википедия.
ORM
Унифицированное АПИ. Поддержка noSQL.
Генерация SQL запросов в одном месте (ORM).
Сложная логика фильтров во всех сущностях.
Переход на работу с объектами, а не массивами.
Возможность выбирать связанные объекты необходимой вложенности и
управлять объемом выбираемых данных.
Тем не менее остается возможность управлять взаимодействием с СУБД,
переопределять запросы.
Поддержка пользовательских свойств (полей).
Возможность автогенерации методов установки/выборки полей для
использования autocomplete в популярных IDE.
ORM – описание данных
• Класс сущности
содержит в себе
описание структуры
данных и связи.
• На основе этой
информации строятся
SQL запросы, set и get
методы сущности по
умолчанию.
• Поддержка
пользовательских
полей
ORM – выборка данных
• Класс сущности содержит в себе методы для выборки
данных getList() и getById().
• Выборка возвращает коллекцию для данной сущности.
• Генерацией SQL запроса занимается ORM, но в
исключительных случаях можно ей помочь.
ORM – изменение данных
• Класс сущности содержит в себе методы для
модификации данных Update, Add, Delete.
• Автоматическая поддержка событий до операции и в
момент операции.
• Возможность группового изменения данных.
Этапы внедрения новой платформы
К версии 12.0 планируется:
Начать реализацию каркаса будущей платформы
Сделать ORM
Внедрить ORM в базовые сущности платформы: сайты,
пользователей, группы, языки.
Реализовать на основе ORM новый модуль HL
инфоблоков.
Дальше: перевод остальных сущностей на ORM и
модификация ядра, усовершенствование библиотеки
классов и базового функционала платформы.
Модуль HL инфоблоков
Позволит создавать списки для хранения
произвольных данных (новости, вакансии, ), каждый
хранится в своих таблицах БД:
• Производительность за счет разделения данных по
таблицам.
• Унифицированное и производительное API по
работе с данными за счет новой ORM.
• Пользовательские поля.
Модуль HL инфоблоков
Инфоблоки первого типа: все элементы в одной
таблице, все свойства в одной таблице в виде записей
- для всех инфоблоков.
Инфоблоки второго типа: все элементы всех
инфоблоков в одной таблице, свойства в отдельных
таблицах в полях.
HL инфоблоки: элементы в отдельных таблицах,
свойства в полях.
Модуль HL инфоблоков
Административные страницы:
• создания/изменения списков (создаются
таблицы, модифицируются поля, индексы)
• изменение элементов списка
Универсальные компоненты
В дальнейшем:
• интеграция с поиском
• расширенные права
Спасибо за внимание!
Вопросы?
Download