Bicycle/.claude/memory/project_bicycle.md
Egor Isaev b65603b4d0 dev
2026-06-23 10:44:18 +03:00

2.9 KiB
Raw Permalink Blame History

name description metadata
project-bicycle-overview Текущее состояние проекта Bicycle — PHP MVC micro-framework, реализованные классы и планы
type
project

Проект Bicycle — самописный PHP MVC micro-framework (PHP >= 8.2), автор Egor Isaev.

Why: Учебный/экспериментальный проект ("изобрести велосипед"). Не предлагать заменить на Laravel/Symfony.

How to apply: При добавлении фич ориентироваться на стиль существующих классов. Всегда обновлять CLAUDE.md после изменений без напоминаний (feedback-update-claude-md).

Уже реализовано (по состоянию на 2026-06-23)

Ядро MVC:

  • Core, Route, Request, Response, Controller, View, MyException

HTTP-инфраструктура:

  • HTTP (redirect, request_headers)
  • HTTP\Header (ArrayObject, send)
  • HTTP\Message (интерфейс)
  • HTTP\Request (интерфейс, константы методов)
  • HTTP\HTTPException (factory, get_response)
  • HTTP\Exception\HTTPException_302/403/404
  • HTTP\Client\{Request, Curl, Response} (исходящие запросы)

Состояние и конфиг:

  • Session (синглтон, именованные сессии)
  • Cookie (статический хелпер)
  • Config (lazy-load + merge config.local.php)

Приложение: IndexController (indexAction GET + postAction POST — демо HTTP-клиента к jsonplaceholder), шаблон App/view/Index/index.html.

Тесты: 111 тестов, все проходят (docker exec bicycle vendor/bin/phpunit).

Не реализовано / заготовки

  • Services/DataBase, Services/Mail, Services/PDF — пустые каталоги, кода нет (зависимости PDO/PHPMailer/dompdf в composer.json есть).
  • App/Classes/ — отсутствует.
  • Запланировано: Model, BaseController (before/after), Database+PdoDriver (PDO singleton с failover), Statement (showQuery/sq), Repository (CRUD + транзакции/SAVEPOINT), Profiler/ProfilerPDO.

Важные ограничения

  • Переменная окружения среды — APP_ENV (раньше была MMH_ENV), задаётся в .htaccess через SetEnv.
  • Никогда не трогать /home/isaevea/http/docker-dev/docker/php-apache/8.2.8/Dockerfile
  • Apache config: /home/isaevea/http/docker-dev/conf/Bicycle/apache2/apache2.conf
  • Core::init() не вызывается в тестовом bootstrap (конфликт с PHPUnit handlers)
  • PHPStorm: volume /home/isaevea/http/Bicycle/opt/project, autoload /opt/project/vendor/autoload.php