🧱 Суть
1С-Битрикс – это CMS и фреймворк на PHP для разработки сайтов и интернет-магазинов.
Проект состоит из:
- ядра системы
- публичной части сайта
- пользовательского кода
- шаблонов
- компонентов
- модулей
Важно понимать, какие директории относятся к ядру, а какие можно изменять.
Общая схема проекта:
Корень проекта
│
├── /bitrix ← ядро системы
├── /local ← пользовательский код
├── /upload ← загружаемые файлы
├── /images ← изображения сайта
├── /include ← подключаемые файлы
├── /url разделы сайта
└── index.php📦 Проблема
Новички часто начинают изменять файлы внутри:
/bitrixПосле обновления Битрикса все изменения будут потеряны.
Кроме того, смешивание пользовательского кода с ядром усложняет поддержку проекта.
✅ Решение
Следовать архитектуре Битрикса:
- не изменять ядро
- писать собственный код в
/local - использовать компоненты и шаблоны
- хранить пользовательские настройки отдельно от системных файлов
💻 Основные директории
/bitrix
Содержит ядро системы.
Здесь находятся:
- административная панель
- встроенные модули
- компоненты
- классы ядра
- системные настройки
/bitrix
├── admin
├── components
├── modules
├── templates
└── ...Изменять содержимое этой папки не рекомендуется.
/local
Основное место для пользовательской разработки.
Обычно содержит:
/local
├── components
├── templates
├── php_interface
├── modules
└── classesИменно здесь располагают:
- собственные компоненты
- классы
- обработчики событий
- шаблоны
- модули
/upload
Каталог пользовательских файлов.
Например:
/upload
├── images
├── iblock
└── filesСюда попадают:
- изображения
- документы
- файлы инфоблоков
/include
Хранит небольшие подключаемые части сайта.
Например:
/include
├── footer_contacts.php
├── phone.php
└── menu.phpЧасто используется вместе с компонентом включаемых областей.
Публичная часть
Все страницы сайта находятся в корне проекта.
Например:
/about/
catalog/
news/
contacts/Каждый раздел обычно содержит:
index.php
.section.php
.menu.phpФайл index.php
Практически каждая страница начинается так:
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
// Код страницы
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");Здесь:
- подключается шапка сайта
- выводится содержимое страницы
- подключается подвал
Файл header.php
Подключает:
- HTML-документ
<head>- стили
- JavaScript
- меню
- шапку сайта
Файл footer.php`
Закрывает страницу:
- футер
- подключение скриптов
- закрывающие HTML-теги
Каталог /local/php_interface
Используется для настройки поведения системы.
Часто содержит:
init.phpВ этом файле:
- регистрируют обработчики событий
- подключают собственные классы
- настраивают приложение
Компоненты
Компоненты – основной механизм вывода данных.
Например:
$APPLICATION->IncludeComponent(
"bitrix:news.list",
"",
[]
);Компонент:
- получает данные
- обрабатывает их
- отображает результат через шаблон
Шаблоны сайта
Шаблоны располагаются, например:
/local/templates/Обычно содержат:
header.php
footer.php
styles.css
template_styles.cssИменно шаблон определяет внешний вид сайта.
Инфоблоки
Большинство данных хранится в инфоблоках.
Например:
- новости
- каталог
- статьи
- сотрудники
- акции
Компоненты получают информацию именно из инфоблоков.
Частые ошибки
Изменять файлы ядра
Плохо:
/bitrix/modules/После обновления изменения будут потеряны.
Следует использовать каталог:
/localХранить собственные классы в /bitrix
Пользовательский код должен находиться отдельно от системного.
Добавлять всю логику в index.php
Плохо:
index.phpсодержит сотни строк бизнес-логики.
Лучше:
- использовать компоненты
- выносить код в классы
- применять обработчики событий
Загружать файлы вручную в случайные папки
Все пользовательские файлы рекомендуется хранить в:
/uploadНе использовать шаблоны компонентов
Изменять HTML внутри компонентов ядра не рекомендуется.
Следует создавать собственные шаблоны компонентов в каталоге:
/local/templates/🎯 Вывод
- Проект 1С-Битрикс разделён на ядро и пользовательскую часть
- Каталог
/bitrixсодержит системные файлы и не должен изменяться - Основной пользовательский код размещается в
/local - Страницы сайта строятся через
header.php,footer.phpи компоненты - Данные обычно хранятся в инфоблоках
- Соблюдение структуры упрощает обновление системы и поддержку приложения