agents.md

This commit is contained in:
Konstantin
2026-05-30 09:57:04 +03:00
parent 2b8d4dc057
commit e45a057ffa
+101
View File
@@ -0,0 +1,101 @@
# AGENTS.md — инструкция для агентов
## О проекте
**ocStore (OpenCart) 3.0.3.7** — интернет-магазин на PHP с Twig-шаблонами.
- **Платформа:** ocStore 3.0.3.7 (форк OpenCart)
- **PHP:** >= 8.5
- **Шаблонизатор:** Twig 3.0
- **Язык:** русский (ru-ru)
- **База данных:** MySQL (драйвер mysqli)
- **Веб-сервер:** Apache с mod_rewrite
## Структура проекта
```
public/
├── admin/ # Админ-панель (MVC)
│ ├── controller/ # Контроллеры
│ ├── language/ # Языковые файлы ru-ru
│ ├── model/ # Модели
│ ├── view/ # Twig-шаблоны (.twig)
│ └── index.php
├── store/ # Витрина / каталог (MVC)
│ ├── controller/
│ ├── language/
│ ├── model/
│ └── view/theme/ # Тема оформления
├── system/ # Ядро (фреймворк, библиотеки, хелперы)
│ ├── engine/ # Роутинг, экшены, загрузчик
│ ├── library/ # Библиотеки (language, config, template, …)
│ ├── helper/ # Хелперы
│ └── config/ # Конфигурация ядра
├── image/ # Изображения товаров
├── config.php # Конфигурация (в .gitignore!)
└── index.php # Точка входа
storage/
├── cache/ # Кэш (в .gitignore)
├── logs/ # Логи (в .gitignore)
├── modification/ # Модификации OCMOD (в .gitignore)
├── session/ # Сессии PHP (в .gitignore)
├── upload/ # Загрузки (в .gitignore)
├── download/ # Файлы для скачивания (в .gitignore)
└── vendor/ # Composer-зависимости (в .gitignore, Twig)
```
## Важные правила
### Никогда не коммитить
- `public/config.php` и `public/admin/config.php` — содержат пароли БД
- `storage/` целиком (кроме `index.html`)
- `vendor/` — устанавливается через Composer
- Файлы кэша, логов, сессий
- `public/image/` — изображения хранятся отдельно
### Коммиты
- Сообщения коммитов — **на русском языке**
- Стиль: кратко, что сделано (пример: `"Блог в меню"`, `"Удалил googleshopping"`)
### Код-стайл
- PHP: без строгой типизации, используется `$_` суперглобальный массив для языковых переменных
- Языковые файлы — ассоциативный массив `$_['key'] = 'значение';`
- Контроллеры — классы в `Controller*` namespace
- Модели — классы в `Model*` namespace
- Шаблоны — `.twig` файлы
- Формат языковых переменных в шаблонах: `{{ text_yes }}`, `{{ button_save }}`
- Формат языковых констант: `$_['text_yes']`, `$_['button_save']` и т.д.
### OpenCart MVC (паттерн)
- URL-роутинг: `index.php?route=common/home` загружает `controller/common/home.php`
- Контроллер вызывает `$this->load->model('catalog/product')` для загрузки модели
- Контроллер вызывает `$this->load->language('product/product')` для языкового файла
- Шаблоны рендерятся через `$this->response->setOutput($this->load->view(...))`
### Модификации (OCMOD)
- OCMOD-модификации лежат в `public/system/modification.xml`
- Изменённые файлы попадают в `storage/modification/` — не трогать вручную
### Composer
- Зависимости: Twig 3.0
- Установка: `composer install` в `storage/`
## Работа с расширениями
Расширения (модули, темы, платёжные шлюзы и т.д.) устанавливаются через админ-панель или вручную:
- Модули: `public/admin/controller/extension/module/`, `public/store/controller/extension/module/`
- Темы: `public/store/view/theme/`
- Языковые файлы расширений: `public/admin/language/ru-ru/extension/`
## Полезные команды
```bash
# Очистка кэша
rm -rf storage/cache/*
# Установка зависимостей
cd storage && composer install
# Просмотр логов
tail -f storage/logs/error.log
```