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

4.7 KiB
Raw Blame History

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/

Полезные команды

# Очистка кэша
rm -rf storage/cache/*

# Установка зависимостей
cd storage && composer install

# Просмотр логов
tail -f storage/logs/error.log