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

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

Практичний посібник для користувача: як підготувати ZIP, вибрати entrypoint, запускати дозволені команди, завантажити artifact і зрозуміти типові помилки компіляції.

Швидкий шлях до першої збірки
  1. Упакуйте проєкт у ZIP без секретів і зайвих файлів.
  2. Переконайтеся, що entrypoint існує, зазвичай public/index.php.
  3. Запустіть report/check/deps перед compile.
  4. Завантажте artifact і запустіть бінарник за README_RUN.
GO OUTPUT

Як писати PHP, щоб Go був швидшим

Компілятор уміє оптимізувати багато старого PHP, але найкращий результат виходить, коли код дає аналізатору зрозумілі типи, стабільні класи і передбачувані масиви.

Допомагає компілятору

  • Вказуйте типи аргументів і return type там, де вони відомі.
  • Передавайте масиви і DTO явно, не ховайте структуру в глобальних змінних.
  • Тримайте entrypoint, роутинг і сервіси у зрозумілих класах з Composer autoload.
  • Використовуйте прості умови й явні fallback-и замість глибокої магії та довільних callback-ів.

Частіше дає fallback

  • Динамічні імена класів без зрозумілого namespace-префікса.
  • Масиви, які в різних гілках стають рядком, обʼєктом і числом.
  • Магічні властивості й методи без стабільної ініціалізації.
  • Великі vendor/test/dev директорії, які не використовуються в runtime, але потрапляють в аналіз.

Хороший стиль для аналізу

PHP вихідний код
function userId(array $user): int
{
    return (int) ($user['id'] ?? 0);
}
Типовий Go-вивід
func f_userId(v_user php.Array) int64 {
    return php.ArrayGetIntDefault(v_user, php.StrKey("id"), 0)
}
Чому так швидше

Компілятор бачить array → int і може згенерувати прямий typed-accessor замість загального PHP-приведення в рантаймі.