Files
dominik/AGENTS.md
T
Konstantin e45a057ffa agents.md
2026-05-30 09:57:04 +03:00

102 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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
```