Документация

Документация php2go

Практическое руководство для пользователя: как подготовить ZIP, выбрать entrypoint, запускать разрешённые команды, скачать artifact и понять частые ошибки компиляции.

Быстрый путь к первой сборке
  1. Упакуйте проект в ZIP без секретов и мусора.
  2. Проверьте, что entrypoint существует, обычно public/index.php.
  3. Запустите report/check/deps перед compile.
  4. Скачайте artifact и запустите бинарник по README_RUN.
REPORTS

Как читать report, check и deps

Эти команды нужны не для красоты. Они показывают, что компилятор реально увидел в проекте, какие файлы достижимы, где есть динамика и почему сборка может упасть.

report Даёт сводку по проекту: файлы, классы, функции, reachable-код, fallback-и, диагностику и итоговый статус.
check Проверяет проект без сборки бинарника. Удобно запускать после правок, чтобы быстро увидеть оставшиеся ошибки.
deps Показывает зависимости и недостающие символы. В формате --json удобен для автоматической диагностики.
compile Генерирует Go-код, запускает go build и создаёт artifact. Запускайте после report/check.

Какие метрики важны

Хорошие признаки

  • errors=0 и понятные warnings.
  • Большая часть вызовов стала direct_calls или typed_ops.
  • fallback_hotspots объяснимы и не находятся в горячем runtime-пути.

На что смотреть внимательно

  • E_CLASS_NOT_FOUND, E_FUNCTION_NOT_FOUND и missing symbol.
  • Много CallMethodScoped, AnyKey, TypeAssert и dynamic calls.
  • GoBuild errors: это уже проблема сгенерированного Go-кода, её стоит отправлять в поддержку.
compile_report: ok
files=128 classes=84 functions=312
fallbacks_total=27 call_method=3 any_key=12
diagnostics=2 errors=0 warnings=2