41 lines
3.0 KiB
Markdown
41 lines
3.0 KiB
Markdown
# Серверная логика и 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)]]
|