Files
pinecore/.claude/development/testing.md
2026-04-06 18:47:11 +03:00

2.1 KiB
Raw Blame History

Testing & Debugging

Запуск воркера локально

frankenphp run --config Caddyfile

Убедись, что переменные окружения заданы (.env или environment.php).


Отладка запросов

Включи подробное логирование через конфиг:

Config::get('log.level') // DEBUG для максимального вывода

Логи пишутся через LoggerInterface (Monolog). Смотри architecture/logging.md для деталей.


Частые проблемы

Воркер не стартует

  • Проверь синтаксис Caddyfile и путь до worker.php
  • FrankenPHP требует FRANKENPHP_CONFIG или явного указания воркер-скрипта
  • Проверь, что Kernel::init() вызван до первого запроса

Маршрут не найден (404)

  • Убедись, что файл с RouteDefinition лежит в routes/ (autoload подхватывает автоматически)
  • Проверь HTTP-метод и путь: параметры вида {id} чувствительны к паттерну

JWT не валидируется

  • Проверь, что Config::get('auth.secret') не пустой
  • Убедись, что AuthMiddleware зарегистрирован в контейнере
  • Время жизни токена — Config::get('auth.ttl')

Ошибка CORS

  • CorsMiddleware требует явного конфига (список разрешённых origins)
  • Если конфиг не задан — бросается RuntimeException при старте

MongoDB не подключается

  • Проверь DSN в конфиге: Config::get('mongodb.dsn')
  • Проверь, что MongoDB-сервис запущен и доступен из воркера

Инспекция контейнера

// В dev-режиме: посмотреть все зарегистрированные сервисы
$ids = Kernel::getContainer()->getServiceIds();