Initial commit

This commit is contained in:
2026-07-06 13:05:56 +03:00
commit 831c72dc60
28 changed files with 2527 additions and 0 deletions
@@ -0,0 +1,40 @@
# Серверная логика и php_interface (apelsincom)
Где на этом сайте выполняется серверный код помимо шаблонов. Короткий ответ: **своей серверной логики в `/local/` почти нет** — это отличает проект от типового Битрикс-сайта.
## Чего НЕТ (и это важно знать)
- `/local/php_interface/`**пусто**. Своего `init.php` с обработчиками событий и агентами нет.
- `/local/components/`**пусто**. Своих компонентов нет.
Поэтому не ищите бизнес-логику в `init.php` — её там нет. Она размазана по трём местам:
1. **Шаблоны компонентов** (`result_modifier.php`, `component_epilog.php`) — см. [[Компоненты и шаблоны компонентов]].
2. **Модуль `richcode.api`** — вся API-логика в `bitrix/modules/richcode.api/lib/` — см. [[REST API (richcode.api)]].
3. **Штатные механизмы Битрикса** — импорт/экспорт, обмен, агенты.
## Ядро: `bitrix/php_interface`
Это часть ядра, но пригодится:
| Файл | Назначение |
|---|---|
| `dbconn.php` | подключение к БД. **Чувствительно** (реквизиты) — не выносить в публичные бэкапы |
| `after_connect_d7.php` | SQL после коннекта: `SET NAMES 'utf8mb4' COLLATE 'utf8mb4_0900_ai_ci'` (отсюда вывод — MySQL 8) |
| `include/catalog_import/` | раннеры импорта: CommerceML (1С), CSV, `cron_frame.php` |
| `include/catalog_export/` | раннеры экспорта: Яндекс.Маркет (YML), Froogle, CSV, `cron_frame.php` |
Импорт/экспорт запускаются по расписанию (cron/агенты) — см. [[Интеграции (apelsincom)]] и [[Кэширование и обслуживание (apelsincom)]].
## Конфигурация
- `bitrix/.settings.php` (D7) и `bitrix/.config.php` — подключения, кэш, криптоключи. **Чувствительно**, значения в документации не приводятся.
- `bitrix/license_key.php` — лицензионный ключ.
> [!tip] Если нужно добавить свою логику
> Делайте это по-битриксовому, не трогая ядро:
> - обработчики событий — создать `local/php_interface/init.php` и регистрировать через `EventManager`/`AddEventHandler`;
> - свои компоненты — `local/components/`;
> - свои модули — `local/modules/`.
> Так правки переживут обновление платформы.
## См. также
- [[Компоненты и шаблоны компонентов]]
- [[REST API (richcode.api)]]
- [[Интеграции (apelsincom)]]