Ядро Bitrix d7 – короткий конспект
Відтепер весь код окремого сайту можна розміщувати в папці /local/, а не як раніше /bitrix/templates/, /bitrix/components/ім'я/ і т.д. Це спростить командну розробку з використанням систем контролю версій і дозволить повністю відокремити код розробки сайту від ядра.
Підключаємо тільки header
Код звичайної сторінки в публічній частині тепер виглядатиме так:
У цьому, за словами розробників, тепер потрібно використовувати відкладені функції, т.к. спочатку підключається ядро, потім шаблон сторінки, тобто. значення властивостей сторінок мають бути доступні і в хедері, а не лише у футері.
Відмова від глобальних змінних
Тепер замість глобальних змінних, таких як $APPLICATION, $USER, $DB, $CACHE_MANAGER тощо будуть використовуватися спеціальні об'єкти.
ORM (Object-relational mapping)
Це означає, що буде синтиксис елини GetList, Add, Update, Delete, на відміну від ситуації на даний момент, коли, наприклад, параметри CUser::GetList сильно відрізняються від параметрів того ж CIBlockElement::GetList. Також буде стандартизовано синтаксис параметра $arFilter, який на даний момент також сильно відрізняється від модуля до модуля. Ще розробники обіцяють, що для кожного методу буде реалізовано події, і синтаксис їх, ймовірно, також буде єдиним. Це буде реалізовано завдяки тому, що всі класи успадковуватимуться від базового класу Entity, в якому вже буде реалізовано все, що необхідно, включаючи події (але кожен метод базового класу за бажання можна буде й перевизначити).
Синтаксис нового getList прийматиме лише один масив як параметр, у якому в довільному порядку можна буде вказати будь-який набір потрібних параметрів з наступних:
- 'select' - масивобираються полів
- 'filter' - масив фільтра
- 'group' - масив полів угруповання
- 'order' - масив сортування
- 'limit' - обмеження кількості
- 'offset' - зміщення від початку
- 'count_total' - підрахунок кількості записів
Методи add, update, delete тепер повертатимуть типізовані об'єкти AddResult, UpdateResult і DeleteResult відповідно, в яких буде міститися інформація про успішність операції та помилки за їх наявності.
Цей новий клас об'єднує як налаштування модулів, що зберігаються в БД (Bitrix Main Config Option, раніше COption), так і налаштування ядра - Bitrix Main Config Configuration (альтернатива константам в dbconn.php).
Підключення модулів (тепер модулі підключаються через \Bitrix\Main\Loader)
Тепер, якщо ви, наприклад, помилилися в написанні назви параметра фільтра в GetList, цей параметр не буде проігнорований як раніше, і не будуть вибрані всі елементи, а скрипт зупиниться з помилкою. Що потрібно знати розробникам модулів
Класи функцій тепер повинні розміщуватись у підпапці lib у папці модуля. При цьому якщо назва файлу з класом буде відповідати простору імен, то автопідвантаження класу буде включено автоматично, тобто. тепер не потрібно буде користуватися функцією CModule::AddAutoloadClasses (хоча її використання поки не забороняється, але тепер ця функція називається Loader::registerAutoLoadClasses).