Архитектура «D7»: модули, классы, жизненный цикл Кирсанов Алексей Ведущий разработчик 1C-Битрикс.

Презентация:



Advertisements
Похожие презентации
D7 – новая платформа разработки сайтов и порталов Тушинский Юрий Технический директор Битрикс.
Advertisements

D7: проектирование и реализация нового модуля «Диск» Алексей Кирсанов Ведущий программист «1С-Битрикс»
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – ASP.NET-процесс, пул, домен приложения, компиляция,
Вадим Думбравану руководитель проектов D7. ORM. Object-relational mapping Недостатки текущего похода в API На каждую сущность программируется свой GetList,
Алексей Кирсанов ведущий разработчик «1С-Битрикс» Магазин – глобальная реструктуризация. D7 Партнерская конференция «1С-Битрикс»
BitrixMobile Юрий Тушинский Технический директор Битрикс.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – Модули HTTP, фильтры, события приложения - Global.asax.
Развитие платформы «1С-Битрикс»: эволюция или революция Юрий Тушинский технический директор компании «Битрикс»
ТЕМА ДИПЛОМНОЙ РАБОТЫ: ИНТЕРНЕТ-МАГАЗИН ДЛЯ ОФИСНОЙ ТЕХНИКИ ДЛЯ ООО «ОФТЕХ» ВЫПОЛНИЛА СТУДЕНТКА: БЕССАРАБОВА Е.В. НАУЧНЫЙ РУКОВОДИТЕЛЬ: ТОКАРЕВ АЛЕКСАНДР.
Как улучшить производительность проекта за три шага Шаромов Денис руководитель отдела техподдержки.
Ruby on Rails. Что такое Ruby? Ruby – это открытый, объектно- ориентированный скриптовый язык, изобретенный Юкихиро Мацумото в начале 90-х.
Композит – ваш сайт не тормозит Антон Герасимюк Ведущий разработчик, 1C-Битрикс Партнерская конференция 2015.
Корпоративные системы Лекция 5. Механизмы доступа к БД через Web-интерфейс.
Создание безопасных Веб-приложений Алексей Кирсанов ведущий разработчик компании «Битрикс»
Разграничение доступа в ORACLE 10 Дмитрий Петренко.
Компоненты 2.0 1C-Битрикс: управление сайтом Артем Рябинков к.т.н, руководитель отдела партнерских и корпоративных продаж Компания «Битрикс»
Новое в инфоблоках: вычисляемые свойства и ORM. Смирнов Максим Ведущий программист «1С-Битрикс»
Реализация концепции построения и формирования отраслевой системы государственного учета, регистрации и мониторинга (ОСГУРМ) информационных ресурсов сферы.
Харичкин Александр МФТИ(ГУ) 16 июня Характеристики информационных систем Объем кода Сложность модели данных Масштабируемость Возможность повторного.
RIA-приложение Fuzzle CMS*: разбор полётов *Fuzzle CMS – система управления Flash-сайтом на базе Flex и PHP.
Транксрипт:

Архитектура «D7»: модули, классы, жизненный цикл Кирсанов Алексей Ведущий разработчик 1C-Битрикс

Основные принципы Сильное зацепление Каждая функциональность сосредоточена в одном месте, обязанности класса тесно связаны Паттерны проектирования Слабая связанность ООП

Ядро / API Модульная архитектура /bitrix/modules /local/modules Модули Главный модуль Доступ к данным Авторизация Конфигурация... Инфоблоки... Магазин Бизнес- процессы Компонент 1 Компонент 2... Данные

Пространство имен Bitrix Bitrix\Main Bitrix\Main\IO Bitrix\Forum Пространства имен и классы Для сторонних модулей mycompany.catalog MyCompany\Catalog Классы не делятся по типам баз данных - ORM Имена классов без префиксов и суффиксов Исключение: классы сущностей ORM, наследующие Bitrix\Main\Entity\DataManager, имеют суффикс Table (CultureTable, LanguageTable)

Структура файлов модуля Папка /lib /bitrix/modules/main/lib Имя файла – имя класса в нижнем регистре Путь к файлу учитывает пространство имен Bitrix\Main\Application /main/lib/application.php Bitrix\Main\IO\File /main/lib/io/file.php MyCompany\Catalog\Tax /mycompany.catalog/lib/tax.php Исключение: классы сущностей ORM, наследующие Bitrix\Main\Entity\DataManager Bitrix\Main\UserTable /main/lib/user.php

Порядок в именовании классов - автозагрузка при первом обращении Подключение Можно по прежнему регистрировать с помощью void Loader::registerAutoLoadClasses( $moduleName, array $arClasses ) Подключение модуля mixed Loader::includeModule($moduleName);

Идеология нулевой терпимости к ошибкам разработчика Ошибки Привет

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

Жизненный цикл Загрузчик Контекст Страница Приложение Ответ

Отвечает за инициализацию ядра и запуск на выполнение конкретного обработчика запроса Приложение (Application) Базовая точка входа (маршрутизатор) для обращения к глобальным сущностям ядра Bitrix\Main\Application Не зависит от конкретного хита HttpApplication CliApplication Одиночка / Singleton

Содержит запрос, ответ, текущего пользователя и т. п. Контекст (Context) Bitrix\Main\Context Отвечает за конкретный хит HttpContext CliContext

Выполняет конкретный скрипт, собирает тело ответа на основании шаблона страницы Страница (Page) Bitrix\Main\Page Обработчик конкретного запроса PublicPage AdminPage LightPage

Код страницы сайта Общая схема работы страницы Выбор файла ядра – выбор определенного типа приложения и определенного типа страницы

Код d7 Режим совместимости

Данные запроса Запрос (Request) Bitrix\Main\Request Доступен через контекст Bitrix\Main\HttpRequest

Получение результатов События Анонимные обработчики Новая форма

Общая архитектура классов API: Работа с БД MySQL (mysqli, Mysql), MS SQL, Oracle, NoSQL Пул соединений Bitrix\Main\DB\ConnectionPool Конкретные классы соединения, наследующие абстрактный класс Bitrix\Main\DB\Connection Конкретные классы формирования SQL запросов, наследующие Bitrix\Main\DB\SqlHelper Конкретные классы для работы с результатом выполнения запроса, наследующие Bitrix\Main\DB\Result

БД: Соединение Разные формы вызова выполнения запроса Получение соединения, именованные соединения

БД: Результаты Модификация результата Получение результатов запроса

Конфигурация \Bitrix\Main\Config\Option \Bitrix\Main\Config\Configuration \Bitrix\Main\Config

Файлы Path – работа с путями Bitrix\Main\IO Directory – работа с папками File – работа с файлами

Другие классы Bitrix\Main\Text Bitrix\Main\Data Bitrix\Main\Type Bitrix\Main\Web...

Спасибо за внимание! Вопросы?