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-приведення в рантаймі.