Блог Горошко Андрея 1C-Битрикс,PHP,Разработка Struktura Direktoriy: Руководство разработчика

Struktura Direktoriy: Руководство разработчика

Оптимизация производительности и безопасности — залог успешного проекта на 1С-Битрикс. Данный материал посвящен практическому применению «Struktura Direktoriy: Руководство разработчика». Мы подготовили подробный разбор принципов работы и развернутые примеры интеграции.

—
title: Структура директорий
—

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

  • не изменять ядро при правках сайта,
  • обновлять систему без риска повредить дизайн,
  • гибко настраивать внешний вид.

Основные папки и файлы структуры:

  • /bitrix — системные файлы,
  • /local — пользовательские разработки,
  • /upload — загружаемые файлы,
  • /index.php — главная страница сайта.

Дополнительно создаются публичные страницы, структура которых зависит от выбранного решения.

Папка /bitrix

Все системные файлы находятся в папке /bitrix/.

Некоторые папки могут отсутствовать или добавляться модулями — это зависит от редакции продукта.

Основные системные каталоги и файлы

  • /activities/ — действия для бизнес-процессов.
  • /admin/ — административные скрипты.
  • /components/ — системные и пользовательские компоненты.
  • /css/ — общие стили модулей.
  • /gadgets/ — гаджеты.
  • /js/ — JavaScript-файлы.
  • /modules/ — модули системы. У каждого модуля своя структура.
  • /php_interface/ — служебные файлы:
  • init.php — подключение пользовательских обработчиков событий.
  • after_connect.php — скрипт, который выполняется после подключения к БД в старом ядре.
  • after_connect_d7.php — скрипт, который выполняется после подключения к БД в ядре D7.
  • dbconn_error.php — обработчик ошибок подключения.
  • dbquery_error.php — обработчик ошибок SQL-запросов.
  • /<ID сайта>/init.php — подключение пользовательских обработчиков событий для конкретного сайта. Подключается после определения SITE_ID.
  • .settings.php — настройки ядра.
  • header.php — стандартные шапка сайта.
  • footer.php — стандартный подвал сайта.
  • license_key.php — лицензионный ключ.
  • .access.php — права доступа. Генерируется автоматически.
  • spread.php — файл Главного модуля для переноса cookies посетителя на дополнительные домены различных сайтов.
  • routing_index.php — входная точка роутинга.
  • virtual_file_system.php — поддержка кириллицы в системе.

Кеш

  • /cache/ — кешированные данные.
  • /stack_cache/ — кеш с вытеснением.
  • /managed_cache/ — управляемый кеш.

Дизайн и шаблоны

  • /templates/ — шаблоны сайтов и компонентов:
  • /.default/ — файлы шаблона по умолчанию.
  • /<ID шаблона>/ — кастомизированный шаблон:
  • /components/ — шаблоны компонентов.
  • /lang/ — языковые файлы.
  • /images/ — изображения шаблона.
  • /page_templates/ — шаблоны страниц. Описание в .content.php.
  • header.php — шапка сайта.
  • footer.php — подвал сайта.
  • template_styles.css — основные стили.
  • styles.css — стили для визуального редактора.
  • /themes/ — темы административного раздела.

Папка /local

Доработки рекомендуется хранить в папке /local:

  • чтобы отделить пользовательские файлы от системных,
  • упростить обновления и резервное копирование,
  • снизить риск повреждения ядра.

Если папка /local отсутствует в структуре проекта, создайте ее.

Что можно хранить

  • /activities/ — действия бизнес-процессов.
  • /components/ — компоненты.
  • /gadgets/ — гаджеты рабочего стола.
  • /modules/ — пользовательские модули.
  • /php_interface/ — файл инициализации init.php и языковые файлы user_lang.
  • /templates/ — шаблоны сайта и компонентов.
  • /blocks/ — блоки Сайтов24.
  • /routes/ — конфигурацию роутинга.
  • /js/ — кастомные скрипты.
  • .settings.php и .settings_extra.php — файлы настроек параметров ядра.

Особенности работы

Приоритет файлов. Если файл одновременно существует в /local и в /bitrix, система использует версию из /local. Это переопределяет стандартный функционал без изменения ядра.

Структура. Дублирование файлов между /local и /bitrix усложняет поддержку. Все пользовательские изменения лучше размещать только в /local.

Безопасность. Для папки /local/php_interface/ нужно установить права доступа как для /bitrix/php_interface/, так как она содержит важные файлы инициализации.

Как перенести проект

1. Создайте аналогичную структуру папок в /local.

2. Постепенно переносите измененные файлы из /bitrix и проверяйте работу сайта.

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

Папка /upload

Папка /upload — хранилище для всех файлов, которые загружают на сайт стандартные механизмы Bitrix Framework. Вместо /upload можно указать другую папку в настройках Главного модуля.

  • Откройте в административном разделе страницу Настройки > Настройки продукта > Настройки модулей > Главный модуль.
  • Укажите папку в поле Папка по умолчанию для загрузки файлов.

Как хранятся файлы

Система автоматически создает подпапки для разных типов контента, например:

  • /upload/resize_cache/ — кэшированные версии изображений после обработки,
  • /upload/iblock/ — файлы инфоблоков,
  • /upload/media/ — файлы медиабиблиотеки.

Каждый модуль может создавать свои подпапки для хранения файлов.

Как работать с файлами

Все операции с файлами рекомендуется выполнять через стандартные инструменты:

  • медиабиблиотеку — для изображений, аудио, видео и документов,
  • файловый менеджер — для работы с файлами в административном разделе,
  • API — для работы с файлами в коде.

Для доступа к файлам из кода используйте методы API, а не прямые пути к файлам.

Публичные страницы и разделы

Структура публичной части сайта зависит от используемого решения и настроек.

Главная страница. Лежит в корне сайта и имеет название — /index.php.

Страницы. Файлы с контентом. Размещаются в файловой структуре сайта.

Разделы. Папки с индексными файлами, например, /catalog/index.php. Индексный файл отображает информацию раздела.

Контент на сайте может формироваться динамическими страницами и разделами. Их нет в файловой структуре. Они виртуальные, то есть их генерирует код.

Например, в файле /catalog/index.php можно разместить компонент, который создаст структуру из разделов и страниц с товарами на сайте.

💡 Экспертное мнение и рекомендации

Советы эксперта по интеграции:

  • Всегда используйте кэширование при частых запросах к запросов, чтобы разгрузить базу данных.
  • Соблюдайте стандарты PSR при написании обработчиков для «Struktura Direktoriy: Руководство разработчика».
  • Регулярно проводите аудит производительности системы с помощью встроенного монитора 1С-Битрикс.

Похожая задача в бизнесе?

Помогу автоматизировать процессы и внедрить ИИ

Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.

Related Post

Перенос самописного сайта (Custom CMS / Framework) на 1С-БитриксПеренос самописного сайта (Custom CMS / Framework) на 1С-Битрикс

Профессиональная поддержка, модернизация и оптимизация производительности сайта на 1С-Битрикс — это гарантия высокой конверсии, стабильности продаж и защиты от киберугроз. Услуга «Перенос самописного сайта (Custom CMS / Framework) на 1С-Битрикс»

Получить цену товара по идентификатору catalog.price.getПолучить цену товара по идентификатору catalog.price.get

Каждый PHP-разработчик, работающий с экосистемой Bitrix Framework, должен глубоко понимать работу её ключевых компонентов. В этой статье мы проведем подробный аудит темы «Получить цену товара по идентификатору catalog.price.get», проанализируем лучшие

Как использовать метод SDK entity.item.property.delete в Битрикс24Как использовать метод SDK entity.item.property.delete в Битрикс24

Каждый PHP-разработчик, работающий с экосистемой Bitrix Framework, должен глубоко понимать работу её ключевых компонентов. В этой статье мы проведем подробный аудит темы «Как использовать метод SDK entity.item.property.delete в Битрикс24», проанализируем