Ядро продукта

Когда мы говорим о любом коммерческом модульном продукте можно выделить 2 его технические составляющие:

  • Ядро
  • Пользовательская часть

Если смотреть на вещи функционально, то для понимания можно использовать следующую семантику: ядро это системная часть, которая обеспечивает работу пользовательской части.

В случае Битрикс24 под ядром мы чаще всего будем понимать системные файлы и каталоги, в которые разработчик не имеет права вносить свои изменения.

Технически, при использовании коробочной версии продукта разработчик с соответствующей квалификацией имеет возможность это сделать, однако ему необходимо принимать во внимание все далекоидущие последствия своего выбора. Иногда сэкономив 10 часов своего времени при разработке можно увеличить стоимость поддержки решения на многие недели.

Почему нельзя править код ядра?

  • при обновлении системы внесенные изменения затрутся;
  • при изменении ядра владелец лицензии теряет право на техническую поддержку;
  • при изменении ядра разработчиком сайта возможна некорректная работа системы, так как ядро - сложная система, требующая учета работы всех модулей.

Файловая структура

Bitrix Framework организован таким образом, что программные компоненты ядра продукта были отделены от пользовательских файлов, а также файлов, определяющих внешнее представление сайта.

Вся система целиком лежит в каталоге /bitrix/, в него входят следующие подкаталоги и файлы:

  • /admin/ - административные скрипты;
  • /cache/ - файлы кэша;
  • /managed_cache/ - управляемый кеш;
  • /activities/ - каталог действий для бизнес-процессов;
    • /activities/bitrix/ - системный каталог;
  • /components/ - каталог для компонентов;
    • /components/bitrix/ - системный каталог;
  • /gadgets/ - каталог гаджетов;
    • /gadgets/bitrix/ - системный каталог;
  • /js/ - каталог javascript модулей;
  • /themes/ - темы административного раздела;
  • /wizards/ - каталог мастеров;
  • /images/ - изображения используемые как системой в целом, так и отдельными модулями;
  • /modules/ - каталог с модулями системы, в том числе пользовательским;
  • /panel/ - каталог для стилей административных страниц модулей
  • /php_interface/ - вспомогательный служебный каталог, в него входят следующие каталоги и файлы:
    • dbconn.php - параметры соединения с базой;
    • init.php - дополнительные параметры портала;
    • after_connect.php - подключается сразу же после создания соединения с базой;
    • dbconn_error.php - подключается при ошибке в момент создания соединения с базой;
    • dbquery_error.php - подключается при ошибке в момент выполнения SQL запроса;
    • /ID сайта/init.php - дополнительные параметры сайта; файл подключается сразу же после определения специальной константы с идентификатором сайта - SITE_ID;
  • /tools/ - при инсталляции в этот каталог копируются дополнительные страницы, которые могут быть непосредственно использованы на любых страницах сайта: помощь, календарь, показ изображения и т.п.;
  • /updates/ - каталог, автоматически создаваемый системой обновлений;
  • .settings.php - файл с настройками ядра продукта, в т.ч. доступ к базе, секретный ключ, настройки пуш соединение и сессий
  • header.php - стандартный файл, подключающий в свою очередь конкретный пролог текущего шаблона сайта; данный файл должен использоваться на всех страницах публичной части;
  • footer.php - стандартный файл, подключающий в свою очередь конкретный эпилог текущего шаблона сайта; данный файл должен использоваться на всех страницах публичной части;
  • license_key.php - файл с лицензионным ключом;
  • spread.php - файл используемый главным модулем для переноса куков посетителя на дополнительные домены различных сайтов;
  • redirect.php - файл используемый модулем Статистика для фиксации событий перехода по ссылке;
  • stop_redirect.php - файл используемый модулем Статистика для выдачи какого либо сообщения посетителю, попавшему в стоп-лист;
  • activity_limit.php - файл используемый модулем Статистика для выдачи сообщения роботу при превышении им лимита активности; и другие служебные файлы и каталоги.
  • /templates/ - каталог с шаблонами сайтов и компонентов

Особые файлы

В каталоге /bitrix/ можно встретить и другие файлы и директории (мы будем рассматривать отдельно в следующих разделах), однако есть некоторые каталоги о которых следует знать:

  • /stack_cache/ - еще одна папка для хранения кеша. В настоящий момент в данной папке находится кеш курсов валют, однако эта папка отмечена устаревшей и более не будет использоваться в продукте.
  • Директории: activities, components, gadgets, js, templates имеют особую структуру и зависят как от модулей битрикса, так и от сторонних разработчиков. Структуру этих папок мы будем рассматривать позже. Сейчас достаточно знать зачем они нужны.
  • Опциональный файл .settings_extra.php который дополняет конфигурацию основного файла, заменяя разрешенные ключи

Иногда при разработке проекта удобнее считать что все, что находится в директории bitrix является ядром, а изменять можно только содержимое каталога local, технический файл /bitrix/.settings_extra.php и файлы/директории которые разработчик добавил сам. Подобный подход наилучшим образом гарантирует долговечность проекта