Құжаттама

php2go құжаттамасы

Пайдаланушыға арналған практикалық нұсқаулық: ZIP дайындау, entrypoint таңдау, рұқсат етілген командаларды іске қосу, artifact жүктеу және жиі кездесетін компиляция қателерін түсіну.

Алғашқы build-ке жылдам жол
  1. Жобаны құпияларсыз және артық файлдарсыз ZIP етіп жинаңыз.
  2. Entrypoint бар екенін тексеріңіз, әдетте public/index.php.
  3. Compile алдында report/check/deps іске қосыңыз.
  4. Artifact жүктеп, бинарникті README_RUN бойынша іске қосыңыз.
GO OUTPUT

Go жылдам болуы үшін PHP қалай жазылады

Компилятор ескі PHP-дің көп бөлігін оптимизациялай алады, бірақ ең жақсы нәтиже code типтері анық, classes тұрақты және arrays болжамды болғанда шығады.

Компиляторға көмектеседі

  • Белгілі жерде argument және return type көрсетіңіз.
  • Arrays және DTO-ларды ашық беріңіз, structure-ды globals ішінде жасырмаңыз.
  • Entrypoint, routing және services-ті Composer autoload бар түсінікті classes ішінде ұстаңыз.
  • Терең magic және arbitrary callbacks орнына қарапайым conditions және explicit fallbacks қолданыңыз.

Көбіне fallback береді

  • Түсінікті namespace prefix жоқ dynamic class names.
  • Әр branch-та array, string, object және number болып өзгеретін variables.
  • Тұрақты initialization жоқ magic properties және methods.
  • Runtime-та қолданылмайтын, бірақ analysis-ке кіретін үлкен vendor/test/dev directories.

Analysis үшін жақсы стиль

PHP source
function userId(array $user): int
{
    return (int) ($user['id'] ?? 0);
}
Typical Go output
func f_userId(v_user php.Array) int64 {
    return php.ArrayGetIntDefault(v_user, php.StrKey("id"), 0)
}
Неге бұл жылдамырақ

Компилятор array → int байланысын көреді және runtime-тағы жалпы PHP conversion орнына direct typed-accessor шығара алады.