RoadRunner: PHP เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป€เบžเบทเปˆเบญเบ•เบฒเบ, เบซเบผเบท Golang เป€เบžเบทเปˆเบญเบเบนเป‰เป„เบž

RoadRunner: PHP เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป€เบžเบทเปˆเบญเบ•เบฒเบ, เบซเบผเบท Golang เป€เบžเบทเปˆเบญเบเบนเป‰เป„เบž

Hey Habr! เบžเบงเบเป€เบฎเบปเบฒเป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบขเบนเปˆ Badoo เป€เบฎเบฑเบ”เบงเบฝเบเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” PHP, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบžเบงเบเป€เบฎเบปเบฒเบกเบตเบฅเบฐเบšเบปเบšเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบžเปเบชเบปเบกเบ„เบงเบ™เปƒเบ™เบžเบฒเบชเบฒเบ™เบตเป‰เปเบฅเบฐเบšเบฑเบ™เบซเบฒเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบกเปˆเบ™เบšเบฑเบ™เบซเบฒเบเบฒเบ™เบ›เบฐเบซเบเบฑเบ”เป€เบ‡เบดเบ™. เบซเบผเบฒเบเบเบงเปˆเบฒเบชเบดเบšเบ›เบตเบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบชเป‰เบฒเบ‡ PHP-FPM เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เบตเป‰, เป€เบŠเบดเปˆเบ‡เปƒเบ™เบ•เบญเบ™เบ—เปเบฒเบญเบดเบ”เปเบกเปˆเบ™เบŠเบธเบ”เบ‚เบญเบ‡ patches เบชเปเบฒเบฅเบฑเบš PHP, เปเบฅเบฐเบ•เปเปˆเบกเบฒเป„เบ”เป‰เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบเบฒเบ™เปเบˆเบเบขเบฒเบเบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™.

เปƒเบ™เบŠเบธเบกเบ›เบตเบกเปเปˆเป†เบกเบฒเบ™เบตเป‰, PHP เบกเบตเบ„เบงเบฒเบกเบเป‰เบฒเบงเบซเบ™เป‰เบฒเบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบ: เบœเบนเป‰เป€เบเบฑเบšเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเป„เบ”เป‰เบ›เบฑเบšเบ›เบธเบ‡, เบฅเบฐเบ”เบฑเบšเบ„เบงเบฒเบกเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡เป„เบ”เป‰เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™ - เบกเบทเป‰เบ™เบตเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ‚เบฝเบ™ daemon เปเบฅเบฐ scripts เบเบฒเบงเปƒเบ™ PHP เป‚เบ”เบเบšเปเปˆเบกเบตเบšเบฑเบ™เบซเบฒเปƒเบ”เป†. เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ Spiral Scout เป„เบ›เบ•เบทเปˆเบกเบญเบตเบ: RoadRunner, เบšเปเปˆเป€เบซเบกเบทเบญเบ™เบเบฑเบš PHP-FPM, เบšเปเปˆเป„เบ”เป‰เป€เบฎเบฑเบ”เบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบฅเบฐเบซเบงเปˆเบฒเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เป, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป€เบžเบตเปˆเบกเป€เบ•เบตเบก (เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบชเบฑเบšเบชเบปเบ™). เบžเบงเบเป€เบฎเบปเบฒเบเบณเบฅเบฑเบ‡เบ—เบปเบ”เบฅเบญเบ‡เปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ™เบตเป‰เบขเบนเปˆ, เปเบ•เปˆเบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เบšเปเปˆเบกเบตเบœเบปเบ™เบ—เบตเปˆเบˆเบฐเปเบšเปˆเบ‡เบ›เบฑเบ™เป€เบ—เบทเปˆเบญ. เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบฅเปเบ–เป‰เบฒเบžเบงเบเป€เบ‚เบปเบฒเบกเปˆเบงเบ™เบซเบผเบฒเบ, เบžเบงเบเป€เบฎเบปเบฒเป€เบœเบตเบเปเบœเปˆเบเบฒเบ™เปเบ›เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบเบฒเบ” RoadRunner เบˆเบฒเบ Spiral Scout.

เบงเบดเบ—เบตเบเบฒเบ™เบˆเบฒเบเบšเบปเบ”เบ„เบงเบฒเบกเปเบกเปˆเบ™เปƒเบเป‰เบŠเบดเบ”เบเบฑเบšเบžเบงเบเป€เบฎเบปเบฒ: เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เบžเบงเบเป€เบฎเบปเบฒเบชเปˆเบงเบ™เบซเบผเบฒเบเบกเบฑเบเบˆเบฐเปƒเบŠเป‰ PHP เปเบฅเบฐ Go, เป„เบ”เป‰เบฎเบฑเบšเบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบ‚เบญเบ‡เบ—เบฑเบ‡เบชเบญเบ‡เบžเบฒเบชเบฒเปเบฅเบฐเบšเปเปˆเบ›เบฐเบ–เบดเป‰เบกเบซเบ™เบถเปˆเบ‡เปƒเบ™เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ‚เบญเบ‡เบ„เบปเบ™เบญเบทเปˆเบ™.

เบกเบตเบ„เบงเบฒเบกเบชเบธเบ!

เปƒเบ™เบชเบดเบšเบ›เบตเบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบชเป‰เบฒเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบชเปเบฒเบฅเบฑเบšเบšเปเบฅเบดเบชเบฑเบ”เบˆเบฒเบเบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆ Fortune 500, เปเบฅเบฐเบชเปเบฒเบฅเบฑเบšเบ—เบธเบฅเบฐเบเบดเบ”เบ—เบตเปˆเบกเบตเบœเบนเป‰เบŠเบปเบกเบšเปเปˆเป€เบเบตเบ™ 500 เบœเบนเป‰เปƒเบŠเป‰. เบ•เบฐเบซเบผเบญเบ”เป€เบงเบฅเบฒเบ™เบตเป‰, เบงเบดเบชเบฐเบงเบฐเบเบญเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒ backend เบชเปˆเบงเบ™เปƒเบซเบเปˆเปƒเบ™ PHP. เปเบ•เปˆเบชเบญเบ‡เบ›เบตเบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰, เบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบญเบฑเบ™เปƒเบซเบเปˆเบซเบผเบงเบ‡เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เปเบ•เปˆเบเบฑเบ‡เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ - เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ™เปเบฒเบชเบฐเป€เบซเบ™เบต Golang (Go) เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ stack เป€เบ•เบฑเบเป‚เบ™เป‚เบฅเบขเบตเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ.

เป€เบเบทเบญเบšเบ—เบฑเบ™เบ—เบต, เบžเบงเบเป€เบฎเบปเบฒเบ„เบปเป‰เบ™เบžเบปเบšเบงเปˆเบฒ Go เป„เบ”เป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เปƒเบซเบเปˆเบ‚เบถเป‰เบ™เบ”เป‰เบงเบเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเบนเบ‡เบชเบธเบ” 40x. เบ”เป‰เบงเบเบกเบฑเบ™, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบ‚เบฐเบซเบเบฒเบเบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบงเบ—เบตเปˆเบ‚เบฝเบ™เปƒเบ™ PHP, เบ›เบฑเบšเบ›เบธเบ‡เบžเบงเบเบกเบฑเบ™เป‚เบ”เบเบเบฒเบ™เบฅเบงเบกเป€เบญเบปเบฒเบ„เบงเบฒเบกเป„เบ”เป‰เบ›เบฝเบšเบ‚เบญเบ‡เบ—เบฑเบ‡เบชเบญเบ‡เบžเบฒเบชเบฒ.

เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบšเบญเบเบ—เปˆเบฒเบ™เบงเปˆเบฒเบเบฒเบ™เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบ‚เบญเบ‡ Go เปเบฅเบฐ PHP เบˆเบฐเบŠเปˆเบงเบเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡เป„เบ”เป‰เปเบ™เบงเปƒเบ”เปเบฅเบฐเบกเบฑเบ™เป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบชเปเบฒเบฅเบฑเบšเบžเบงเบเป€เบฎเบปเบฒเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบเปเบฒเบˆเบฑเบ”เบšเบฒเบ‡เบšเบฑเบ™เบซเบฒเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบš. PHP เบ•เบฒเบเบ•เบปเบงเปเบšเบš.

เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ PHP เบ›เบฐเบˆเปเบฒเบงเบฑเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™

เบเปˆเบญเบ™เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบชเบปเบ™เบ—เบฐเบ™เบฒเบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบ—เบตเปˆเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰ Go เป€เบžเบทเปˆเบญเบŸเบทเป‰เบ™เบŸเบนเบฎเบนเบšเปเบšเบš PHP เบ•เบฒเบ, เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเป€เบšเบดเปˆเบ‡เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ PHP เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™.

เปƒเบ™เบเปเบฅเบฐเบ™เบตเบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ”, เบ—เปˆเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป‚เบ”เบเปƒเบŠเป‰เบเบฒเบ™เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเป€เบงเบฑเบšเป„เบŠเบ•เปŒ nginx เปเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ PHP-FPM. เบญเบฐเบ”เบตเบ”เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เป„เบŸเบฅเปŒเบ„เบปเบ‡เบ—เบตเปˆเปเบฅเบฐเบ›เปˆเบฝเบ™เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบชเบฐเป€เบžเบฒเบฐเบเบฑเบš PHP-FPM, เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆ PHP-FPM เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบซเบฑเบ” PHP. เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเปƒเบŠเป‰เบเบฒเบ™เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบ™เบดเบเบปเบกเบซเบ™เป‰เบญเบเบ‚เบญเบ‡ Apache เปเบฅเบฐ mod_php. เปเบ•เปˆเป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบกเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เป€เบฅเบฑเบเบ™เป‰เบญเบ, เบซเบผเบฑเบเบเบฒเบ™เปเบกเปˆเบ™เบ„เบทเบเบฑเบ™.

เปƒเบซเป‰เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบงเบดเบ—เบตเบเบฒเบ™ PHP-FPM เบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบซเบฑเบ”เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ. เป€เบกเบทเปˆเบญเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเป€เบ‚เบปเป‰เบฒเบกเบฒ, PHP-FPM เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบฅเบนเบเบ‚เบญเบ‡ PHP เปเบฅเบฐเบœเปˆเบฒเบ™เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบชเบฐเบ–เบฒเบ™เบฐเบ‚เบญเบ‡เบกเบฑเบ™ (_GET, _POST, _SERVER, เปเบฅเบฐเบญเบทเปˆเบ™เป†).

เบฅเบฑเบ”เบšเปเปˆเบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” script PHP, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบงเบดเบ—เบตเบ”เบฝเบงเบ—เบตเปˆเบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบŠเบธเบ”เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เปƒเบซเบกเปˆเปเบกเปˆเบ™เป‚เบ”เบเบเบฒเบ™เบฅเป‰เบฒเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เปเบฅเบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบกเบฑเบ™เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡.

เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ™เบตเป‰เบกเบตเบ‚เปเป‰เบ”เบตเบซเบผเบฒเบ. เบ—เปˆเบฒเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบเบฑเบ‡เบงเบปเบ™เบซเบผเบฒเบเป€เบเบตเบ™เป„เบ›เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบšเปเบฅเบดเป‚เบžเบเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ, เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™เบขเบนเปˆเป‚เบ”เบ”เบ”เปˆเบฝเบงเบซเบกเบปเบ”, เปเบฅเบฐเบ–เป‰เบฒเบซเบ™เบถเปˆเบ‡เปƒเบ™เบžเบงเบเบกเบฑเบ™ "เบ•เบฒเบ", เบกเบฑเบ™เบˆเบฐเบ–เบทเบเบชเป‰เบฒเบ‡เปƒเบซเบกเปˆเป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เปเบฅเบฐเบกเบฑเบ™เบˆเบฐเบšเปเปˆเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเบชเปˆเบงเบ™เบ—เบตเปˆเป€เบซเบผเบทเบญเบ‚เบญเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™. เปเบ•เปˆเบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เบเบฑเบ‡เบกเบตเบ‚เปเป‰เป€เบชเบเบ—เบตเปˆเบ›เบฒเบเบปเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบžเบฐเบเบฒเบเบฒเบกเบ‚เบฐเบซเบ™เบฒเบ”เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ.

เบ‚เปเป‰เป€เบชเบเปเบฅเบฐเบ„เบงเบฒเบกเบšเปเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก PHP เบ›เบปเบเบเบฐเบ•เบด

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เป€เบ›เบฑเบ™เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ PHP เบกเบทเบญเบฒเบŠเบตเบš, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบฎเบนเป‰เบšเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป‚เบ„เบ‡เบเบฒเบ™เปƒเบซเบกเปˆ - เบ”เป‰เบงเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ‚เบญเบ‡เบเบญเบš. เบกเบฑเบ™เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบชเบตเบ”เบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบช, ORMs, เบเบฒเบ™เปเบ›เปเบฅเบฐเปเบกเปˆเปเบšเบš. เปเบฅเบฐ, เปเบ™เปˆเบ™เบญเบ™, เบ‚เปเป‰เบกเบนเบ™เบœเบนเป‰เปƒเบŠเป‰เบ—เบฑเบ‡เบซเบกเบปเบ”เบชเบฒเบกเบฒเบ”เบ–เบทเบเปƒเบชเปˆเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบงเบฑเบ”เบ–เบธเบ”เบฝเบง (Symfony/HttpFoundation เบซเบผเบท PSR-7). เบเบญเบšเปเบกเปˆเบ™เป€เบขเบฑเบ™!

เปเบ•เปˆเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบกเบตเบฅเบฒเบ„เบฒเบ‚เบญเบ‡เบกเบฑเบ™. เปƒเบ™เบเบญเบšเบฅเบฐเบ”เบฑเบšเบงเบดเบชเบฒเบซเบฐเบเบดเบ”เปƒเบ”เบเปเปˆเบ•เบฒเบก, เป€เบžเบทเปˆเบญเบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰เปเบšเบšเบ‡เปˆเบฒเบเบ”เบฒเบเบซเบผเบทเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™, เบ—เปˆเบฒเบ™เบˆเบฐเบ•เป‰เบญเบ‡เป‚เบซเบฅเบ”เป„เบŸเบฅเปŒเบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบเบซเบผเบฒเบเบชเบดเบšเป„เบŸเบฅเปŒ, เบชเป‰เบฒเบ‡เบŠเบฑเป‰เบ™เบฎเบฝเบ™เบˆเปเบฒเบ™เบงเบ™เบซเบฅเบฒเบเปเบฅเบฐเบงเบดเป€เบ„เบฒเบฐเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบซเบผเบฒเบ. เปเบ•เปˆเบชเบดเปˆเบ‡เบ—เบตเปˆเบฎเป‰เบฒเบเปเบฎเบ‡เบ—เบตเปˆเบชเบธเบ”เปเบกเปˆเบ™เบงเปˆเบฒเบซเบผเบฑเบ‡เบˆเบฒเบเบชเปเบฒเป€เบฅเบฑเบ”เปเบ•เปˆเบฅเบฐเบซเบ™เป‰เบฒเบงเบฝเบ, เบ—เปˆเบฒเบ™เบˆเบฐเบ•เป‰เบญเบ‡เบ•เบฑเป‰เบ‡เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปƒเบซเบกเปˆเปเบฅเบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบซเบกเปˆ: เบฅเบฐเบซเบฑเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเป€เบˆเบปเป‰เบฒเบซเบฒเบเปเปˆเป€เบฅเบตเปˆเบกเบเบฒเบเป€เบ›เบฑเบ™เบšเปเปˆเบกเบตเบ›เบฐเป‚เบซเบเบ”, เบ”เป‰เบงเบเบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบผเบทเบญเบ‚เบญเบ‡เบกเบฑเบ™เบ—เปˆเบฒเบ™เบˆเบฐเบšเปเปˆเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบญเบตเบ. เบšเบญเบเป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰เบเบฑเบšเบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบ—เบตเปˆเบ‚เบฝเบ™เป€เบ›เบฑเบ™เบžเบฒเบชเบฒเบญเบทเปˆเบ™, เปเบฅเบฐเป€เบˆเบปเป‰เบฒเบˆเบฐเป€เบซเบฑเบ™เบ„เบงเบฒเบกเบ›เบฐเบซเบฅเบฒเบ”เปƒเบˆเปƒเบ™เปƒเบšเบซเบ™เป‰เบฒเบ‚เบญเบ‡เบฅเบฒเบง.

เบงเบดเบชเบฐเบงเบฐเบเบญเบ™ PHP เป„เบ”เป‰เบŠเบญเบเบซเบฒเบงเบดเบ—เบตเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ™เบตเป‰เบกเบฒเป€เบ›เบฑเบ™เป€เบงเบฅเบฒเบซเบผเบฒเบเบ›เบตเปเบฅเป‰เบง, เป‚เบ”เบเบ™เปเบฒเปƒเบŠเป‰เป€เบ•เบฑเบเบ™เบดเบเบเบฒเบ™เป‚เบซเบผเบ”เบ‚เบตเป‰เบเบฝเบ”เบ—เบตเปˆเบชเบฐเบซเบฅเบฒเบ”, microframeworks, เบซเปเบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”, cache, เปเบฅเบฐเบญเบทเปˆเบ™เป†. เปเบ•เปˆเปƒเบ™เบ—เบตเปˆเบชเบธเบ”, เบ—เปˆเบฒเบ™เบเบฑเบ‡เบ•เป‰เบญเบ‡เบ›เบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบฑเบ‡เบซเบกเบปเบ”เปเบฅเบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบซเบกเปˆ, เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡เปเบฅเบฐเบญเบตเบเบ„เบฑเป‰เบ‡. (เบซเบกเบฒเบเป€เบซเบ”เบ‚เบญเบ‡เบœเบนเป‰เปเบ›: เบšเบฑเบ™เบซเบฒเบ™เบตเป‰เบˆเบฐเบ–เบทเบเปเบเป‰เป„เบ‚เบšเบฒเบ‡เบชเปˆเบงเบ™เบเบฑเบšเบเบฒเบ™เบกเบฒเบฎเบญเบ”เบ‚เบญเบ‡ เป‚เบซเบฅเบ” เปƒเบ™ PHP 7.4)

PHP เบเบฑเบš Go เบชเบฒเบกเบฒเบ”เบขเบนเปˆเบฅเบญเบ”เบซเบผเบฒเบเบเบงเปˆเบฒเบซเบ™เบถเปˆเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบšเป?

เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบ‚เบฝเบ™เบชเบฐเบ„เบดเบš PHP เบ—เบตเปˆเบกเบตเบŠเบตเบงเบดเบ”เบเบฒเบงเบเบงเปˆเบฒเบชเบญเบ‡เบชเบฒเบกเบ™เบฒเบ—เบต (เป€เบ–เบดเบ‡เบŠเบปเปˆเบงเป‚เบกเบ‡เบซเบผเบทเบซเบผเบฒเบเบกเบทเป‰): เบ•เบปเบงเบขเปˆเบฒเบ‡, cron tasks, CSV parser, queue breakers. เบžเบงเบเป€เบ‚เบปเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เป€เบฎเบฑเบ”เบงเบฝเบเบ•เบฒเบกเบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ”เบฝเบงเบเบฑเบ™: เบžเบงเบเป€เบ‚เบปเบฒเบ”เบถเบ‡เป€เบญเบปเบฒเบซเบ™เป‰เบฒเบงเบฝเบ, เบ›เบฐเบ•เบดเบšเบฑเบ”เบกเบฑเบ™, เปเบฅเบฐเบฅเปเบ–เป‰เบฒเบ•เปเปˆเป„เบ›. เบฅเบฐเบซเบฑเบ”เบขเบนเปˆเปƒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ•เบฐเบซเบผเบญเบ”เป€เบงเบฅเบฒ, เบŠเปˆเบงเบเบ›เบฐเบขเบฑเบ” milliseconds เบ—เบตเปˆเบกเบตเบ„เปˆเบฒเบเป‰เบญเบ™เบงเปˆเบฒเบกเบตเบซเบผเบฒเบเบ‚เบฑเป‰เบ™เบ•เบญเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบžเบทเปˆเบญเป‚เบซเบฅเบ”เบเบญเบšเปเบฅเบฐเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ.

เปเบ•เปˆเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบชเบฐเบ„เบดเบšเบ—เบตเปˆเบกเบตเบญเบฒเบเบธเบเบฒเบงเบ™เบฒเบ™เบšเปเปˆเปเบกเปˆเบ™เป€เบฅเบทเปˆเบญเบ‡เบ‡เปˆเบฒเบ. เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹เปƒเบ”โ€‹เบ™เบถเปˆเบ‡โ€‹เบ‚เป‰เบฒโ€‹เบ‚เบฐโ€‹เบšเบงเบ™โ€‹เบเบฒเบ™โ€‹เบขเปˆเบฒเบ‡โ€‹เบชเบดเป‰เบ™โ€‹เป€เบŠเบตเบ‡, เบเบฒเบ™โ€‹เบงเบดโ€‹เบ™เบดเบ”โ€‹เป„เบชโ€‹เบเบฒเบ™โ€‹เบฎเบปเปˆเบงโ€‹เป„เบซเบฅโ€‹เบ‚เบญเบ‡โ€‹เบซเบ™เปˆเบงเบโ€‹เบ„เบงเบฒเบกโ€‹เบˆเปเบฒโ€‹เปเบกเปˆเบ™ infuriating, เปเบฅเบฐ F5 debugging เบšเปเปˆโ€‹เป€เบ›เบฑเบ™โ€‹เป„เบ›โ€‹เป„เบ”เป‰โ€‹เบญเบตเบโ€‹เปเบฅเป‰เบง.

เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เป„เบ”เป‰เบ›เบฑเบšเบ›เบธเบ‡เบ”เป‰เบงเบเบเบฒเบ™เบ›เปˆเบญเบ PHP 7: เบ•เบปเบงเป€เบเบฑเบšเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบ—เบตเปˆเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ›เบฒเบเบปเบ”เบ‚เบถเป‰เบ™, เบกเบฑเบ™เป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เบ‡เปˆเบฒเบเบ•เปเปˆเบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”, เปเบฅเบฐเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเปเบเปˆเบ™เบ‚เบญเบ‡เปเบเปˆเบ™เปเบกเปˆเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™เบฎเบปเปˆเบงเป„เบซเบผ. เปเบ—เป‰เบˆเบดเบ‡เปเบฅเป‰เบง, เบงเบดเบชเบฐเบงเบฐเบเบญเบ™เบเบฑเบ‡เบ•เป‰เบญเบ‡เบฅเบฐเบกเบฑเบ”เบฅเบฐเบงเบฑเบ‡เบเบฑเบšเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเปเบฅเบฐเบฎเบนเป‰เป€เบ–เบดเบ‡เบšเบฑเบ™เบซเบฒเบ‚เบญเบ‡เบฅเบฑเบ”เปƒเบ™เบฅเบฐเบซเบฑเบ” (เบกเบตเบžเบฒเบชเบฒเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบฅเบฐเป€เบฅเบตเบเบชเบดเปˆเบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบšเป?). เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, PHP 7 เบกเบตเบ„เบงเบฒเบกเปเบ›เบเปƒเบˆเบซเบ™เป‰เบญเบเปƒเบ™เบฎเป‰เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบžเบงเบเป€เบฎเบปเบฒ.

เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเป€เบญเบปเบฒเบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบชเบฐเบ„เบดเบš PHP เบ—เบตเปˆเบกเบตเบŠเบตเบงเบดเบ”เบŠเบตเบงเบฒ, เบ›เบฑเบšเบกเบฑเบ™เปƒเบซเป‰เป€เบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบšเบงเบฝเบเบ‡เบฒเบ™เป€เบฅเบฑเบเบ™เป‰เบญเบเป€เบŠเบฑเปˆเบ™เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เป HTTP, เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เบเปเบฒเบˆเบฑเบ”เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเป‚เบซเบฅเบ”เบ—เบธเบเบขเปˆเบฒเบ‡เบˆเบฒเบเบˆเบธเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเปเบ•เปˆเบฅเบฐเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เป?

เป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ™เบตเป‰, เบ—เปเบฒเบญเบดเบ”เบžเบงเบเป€เบฎเบปเบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเป€เบŠเบตเบŸเป€เบงเบตเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบเบญเบกเบฎเบฑเบšเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป HTTP เปเบฅเบฐเบ›เปˆเบฝเบ™เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบซเบ™เบถเปˆเบ‡เป‚เบ”เบเบซเบ™เบถเปˆเบ‡เป„เบ›เบซเบฒเบžเบฐเบ™เบฑเบเบ‡เบฒเบ™ PHP เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ‚เป‰เบฒเบกเบฑเบ™เบ—เบธเบเบ„เบฑเป‰เบ‡.

เบžเบงเบเป€เบฎเบปเบฒเบฎเบนเป‰เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบ‚เบฝเบ™เป€เบงเบฑเบšเป€เบŠเบตเบŸเป€เบงเบตเปƒเบ™ PHP เบšเปเบฅเบดเบชเบธเบ” (PHP-PM) เบซเบผเบทเปƒเบŠเป‰เบ™เบฒเบกเบชเบฐเบเบธเบ™ C (Swoole). เปเบฅเบฐเป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเปเบ•เปˆเบฅเบฐเบงเบดเบ—เบตเบกเบตเบ„เบงเบฒเบกเบ”เบตเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡, เบ—เบฑเบ‡เบชเบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบšเปเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบšเบžเบงเบเป€เบฎเบปเบฒ - เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบซเบผเบฒเบ. เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบซเบผเบฒเบเบเปˆเบงเบฒเบžเบฝเบ‡เปเบ•เปˆเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเป€เบงเบฑเบšเป„เบŠเบ•เปŒ - เบžเบงเบเป€เบฎเบปเบฒเบ„เบฒเบ”เบงเปˆเบฒเบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เปเบเป‰เป„เบ‚เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบŠเปˆเบงเบเบ›เบฐเบขเบฑเบ”เบžเบงเบเป€เบฎเบปเบฒเบˆเบฒเบเบšเบฑเบ™เบซเบฒเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบš "เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฒเบ" เปƒเบ™ PHP, เป€เบŠเบดเปˆเบ‡เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™เบชเบฒเบกเบฒเบ”เบ”เบฑเบ”เปเบ›เบ‡เป„เบ”เป‰เบ‡เปˆเบฒเบเปเบฅเบฐเบ‚เบฐเบซเบเบฒเบเบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบชเบฐเป€เบžเบฒเบฐ. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ‚เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™.

Go เบŠเปˆเบงเบเปƒเบ™เป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰เป„เบ”เป‰เบšเป? เบžเบงเบเป€เบฎเบปเบฒเบฎเบนเป‰เบงเปˆเบฒเบกเบฑเบ™เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เป€เบžเบฒเบฐเบงเปˆเบฒเบžเบฒเบชเบฒเบฅเบงเบšเบฅเบงเบกเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ–เบฒเบ™เบชเบญเบ‡เบ”เบฝเบง; เบกเบฑเบ™เป€เบ›เบฑเบ™เบ‚เป‰เบฒเบกเป€เบงเบ—เบต; เปƒเบŠเป‰เบ•เบปเบงเปเบšเบšเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบ‚เบฐเบซเบ™เบฒเบ™เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡, เบชเบฐเบซเบ‡เปˆเบฒเบ‡เบฒเบกเบซเบผเบฒเบ (เบเบปเบ‡เบเบฑเบ™) เปเบฅเบฐเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš HTTP; เปเบฅเบฐเบชเบธเบ”เบ—เป‰เบฒเบ, เบซเบผเบฒเบเบžเบฑเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” open-source เปเบฅเบฐเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบˆเบฐเบกเบตเปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒ.

เบ„เบงเบฒเบกเบซเบเบธเป‰เบ‡เบเบฒเบเปƒเบ™เบเบฒเบ™เบฅเบงเบกเบชเบญเบ‡เบžเบฒเบชเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบผเปเบเบผเบก

เบเปˆเบญเบ™เบญเบทเปˆเบ™ เปเบปเบ”, เบกเบฑเบ™ เบˆเบณ เป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡ เบเบณ เบ™เบปเบ”เบงเปˆเบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบชเบญเบ‡เบซเบผเบทเบซเบผเบฒเบเบเบงเปˆเบฒเบ™เบฑเป‰เบ™เบˆเบฐเบ•เบดเบ”เบ•เปเปˆเบชเบทเปˆเบชเบฒเบ™เบเบฑเบ™เปเบ™เบงเปƒเบ”.

เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบขเปˆเบฒเบ‡, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเบ”เบตเป€เบฅเบตเบ” Alex Palaestras, เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเปเบšเปˆเบ‡เบ›เบฑเบ™เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบฅเบฐเบซเบงเปˆเบฒเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™ PHP เปเบฅเบฐ Go (เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบš mod_php เปƒเบ™ Apache). เปเบ•เปˆเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ™เบตเป‰เบกเบตเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ—เบตเปˆเบˆเปเบฒเบเบฑเบ”เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ‚เบญเบ‡เบกเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ.

เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบ—เบตเปˆเบˆเบฐเบ™เปเบฒเปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™, เบ—เบปเปˆเบงเป„เบ›เบเบงเปˆเบฒ: เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบเบฒเบ™เบžเบปเบงเบžเบฑเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบœเปˆเบฒเบ™เบŠเบฑเบญเบเป€เบเบฑเบ” / เบ—เปเปˆ. เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เป„เบ”เป‰เบžเบดเบชเบนเบ”เบงเปˆเบฒเบกเบตเบ„เบงเบฒเบกเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบทเปƒเบ™เบ—เบปเบ”เบชเบฐเบงเบฑเบ”เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒเปเบฅเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ”เบตเปƒเบ™เบฅเบฐเบ”เบฑเบšเบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™.

เป€เบžเบทเปˆเบญเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบ, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบชเป‰เบฒเบ‡เป‚เบ›เป‚เบ•เบ„เบญเบ™ binary เบ‡เปˆเบฒเบเบ”เบฒเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบฅเบเบ›เปˆเบฝเบ™เบ‚เปเป‰เบกเบนเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เปเบฅเบฐเบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบเบฒเบ™เบชเบปเปˆเบ‡เบ•เปเปˆ. เปƒเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบเบ—เบตเปˆเบชเบธเบ”, เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เป‚เบ›เป‚เบ•เบ„เบญเบ™เบ™เบตเป‰เปเบกเปˆเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบš netstring ั เบชเปˆเบงเบ™เบซเบปเบงเบŠเบธเบ”เบ‚เบฐเปœเบฒเบ”เบ„เบปเบ‡เบ—เบตเปˆ (เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ 17 bytes), เป€เบŠเบดเปˆเบ‡เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เปเบžเบฑเบเป€เบเบฑเบ”, เบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบกเบฑเบ™เปเบฅเบฐเบซเบ™เป‰เบฒเบเบฒเบเบ„เบนเปˆเป€เบžเบทเปˆเบญเบเบงเบ”เป€เบšเบดเปˆเบ‡เบ„เบงเบฒเบกเบชเบปเบกเบšเบนเบ™เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™.

เปƒเบ™เบ”เป‰เบฒเบ™ PHP เบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰ เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ‚เบญเบ‡เบŠเบญเบ‡, เปเบฅเบฐเบขเบนเปˆเบ‚เป‰เบฒเบ‡ Go, เบซเปเบชเบฐเบซเบกเบธเบ” เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”/binary.

เบกเบฑเบ™เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบงเปˆเบฒเบžเบดเบ—เบตเบเบฒเบ™เบซเบ™เบถเปˆเบ‡เบšเปเปˆเบžเบฝเบ‡เบžเป - เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เป‚เบ—เบซเบฒ net/rpc เป„เบ›เบšเปเบฅเบดเบเบฒเบ™เป‚เบ”เบเบเบปเบ‡เบˆเบฒเบ PHP. เบ•เปเปˆเบกเบฒ, เบ™เบตเป‰เบŠเปˆเบงเบเบžเบงเบเป€เบฎเบปเบฒเบซเบผเบฒเบเปƒเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ, เป€เบžเบฒเบฐเบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™ Go libraries เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ PHP เป„เบ”เป‰เบขเปˆเบฒเบ‡เบ‡เปˆเบฒเบเบ”เบฒเบ. เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เป€เบซเบฑเบ™เป„เบ”เป‰, เบ•เบปเบงเบขเปˆเบฒเบ‡, เปƒเบ™เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เปเบซเบผเปˆเบ‡เป€เบ›เบตเบ”เบญเบทเปˆเบ™เป†เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ Goridge.

เบเบฒเบ™เปเบˆเบเบขเบฒเบเบงเบฝเบเบ‡เบฒเบ™เปƒเบ™เบ—เบปเปˆเบงเบžเบฐเบ™เบฑเบเบ‡เบฒเบ™ PHP เบซเบผเบฒเบ

เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบปเบ™เป„เบเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš, เบžเบงเบเป€เบฎเบปเบฒเป€เบฅเบตเปˆเบกเบ„เบดเบ”เบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบชเบธเบ”เปƒเบ™เบเบฒเบ™เป‚เบญเบ™เบซเบ™เป‰เบฒเบงเบฝเบเบเบฑเบšเบ‚เบฐเบšเบงเบ™เบเบฒเบ™ PHP. เป€เบกเบทเปˆเบญเบงเบฝเบเบ‡เบฒเบ™เบกเบฒเบฎเบญเบ”, เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ‚เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ•เป‰เบญเบ‡เป€เบฅเบทเบญเบเบžเบฐเบ™เบฑเบเบ‡เบฒเบ™เบ—เบตเปˆเบšเปเปˆเป€เบชเบเบ„เปˆเบฒเป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบกเบฑเบ™. เบ–เป‰เบฒเบœเบนเป‰เบญเบญเบเปเบฎเบ‡เบ‡เบฒเบ™ / เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบญเบญเบเบ”เป‰เบงเบเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบซเบผเบท "เบ•เบฒเบ", เบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบˆเบฑเบ”เบกเบฑเบ™เปเบฅเบฐเบชเป‰เบฒเบ‡เปƒเบซเบกเปˆเป€เบžเบทเปˆเบญเบ—เบปเบ”เปเบ—เบ™เบกเบฑเบ™. เปเบฅเบฐเบ–เป‰เบฒเบœเบนเป‰เบญเบญเบเปเบฎเบ‡เบ‡เบฒเบ™ / เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบชเปเบฒเป€เบฅเบฑเบ”เบœเบปเบ™, เบžเบงเบเป€เบฎเบปเบฒเบชเบปเปˆเบ‡เบ„เบทเบ™เปƒเบซเป‰เบœเบนเป‰เบญเบญเบเปเบฎเบ‡เบ‡เบฒเบ™เบ—เบตเปˆเบกเบตเป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบงเบฝเบเบ‡เบฒเบ™.

RoadRunner: PHP เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป€เบžเบทเปˆเบญเบ•เบฒเบ, เบซเบผเบท Golang เป€เบžเบทเปˆเบญเบเบนเป‰เป„เบž

เป€เบžเบทเปˆเบญเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบชเบฐเบ™เบธเบเป€เบเบตเบ‚เบญเบ‡เบžเบฐเบ™เบฑเบเบ‡เบฒเบ™เบ—เบตเปˆเบกเบตเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบง, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ™เปเบฒเปƒเบŠเป‰ เบŠเปˆเบญเบ‡ buffed, เป€เบžเบทเปˆเบญเป€เบญเบปเบฒเบ„เบปเบ™เบ‡เบฒเบ™ "เบ•เบฒเบ" เบ—เบตเปˆเบšเปเปˆเบ„เบฒเบ”เบ„เบดเบ”เบญเบญเบเบˆเบฒเบเบชเบฐเบ™เบธเบเป€เบเบต, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบžเบตเปˆเบกเบเบปเบ™เป„เบเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปเบฅเบฐเบชเบฐเบ–เบฒเบ™เบฐเบ‚เบญเบ‡เบžเบฐเบ™เบฑเบเบ‡เบฒเบ™.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฎเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ PHP เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเปƒเบ”เป†เบ—เบตเปˆเบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเปƒเบ™เบฎเบนเบšเปเบšเบšเบ„เบนเปˆ.

เป€เบžเบทเปˆเบญเปƒเบซเป‰เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเป€เบฅเบตเปˆเบกเป€เบฎเบฑเบ”เบงเบฝเบเป€เบ›เบฑเบ™เป€เบงเบฑเบšเป€เบŠเบตเบšเป€เบงเบต, เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เป€เบฅเบทเบญเบเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ PHP เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เป€เบžเบทเปˆเบญเป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เป HTTP เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบกเบฒ. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เบžเบงเบเป€เบฎเบปเบฒเบžเบฝเบ‡เปเบ•เปˆ เบซเบฑเบ™เบ›เปˆเบฝเบ™ net/http เบฎเป‰เบญเบ‡เบ‚เปเบˆเบฒเบ Go to format PSR-7เป€เบžเบทเปˆเบญเปƒเบซเป‰เบกเบฑเบ™เป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบเบญเบš PHP เบชเปˆเบงเบ™เปƒเบซเบเปˆเบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™เบกเบทเป‰เบ™เบตเป‰.

เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒ PSR-7 เบ–เบทเบเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบงเปˆเบฒเบšเปเปˆเบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰ (เบšเบฒเบ‡เบ„เบปเบ™เบˆเบฐเป€เบงเบปเป‰เบฒเบงเปˆเบฒเบกเบฑเบ™เบšเปเปˆเปเบกเปˆเบ™เบ—เบฒเบ‡เบ”เป‰เบฒเบ™เป€เบ•เบฑเบเบ™เบดเบ), เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบ•เป‰เบญเบ‡เบ‚เบฝเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเบšเปเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เปเปˆเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเป€เบ›เบฑเบ™เบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบ—เบปเปˆเบงเป‚เบฅเบเปƒเบ™เบซเบผเบฑเบเบเบฒเบ™. เบ™เบตเป‰เป€เบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบšเปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เบ‚เบญเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™ PHP เบ—เบตเปˆเบกเบตเบญเบฒเบเบธเบเบฒเบงเบ™เบฒเบ™. เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบชเบธเบ”เบ—เป‰เบฒเบเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เป€เบŠเบดเปˆเบ‡เบเบฑเบ‡เบšเปเปˆเบ—เบฑเบ™เบกเบตเบŠเบทเปˆ, เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒ:

RoadRunner: PHP เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป€เบžเบทเปˆเบญเบ•เบฒเบ, เบซเบผเบท Golang เป€เบžเบทเปˆเบญเบเบนเป‰เป„เบž

เปเบ™เบฐเบ™เบณ RoadRunner - เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ PHP เบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเบนเบ‡

เบงเบฝเบเบ‡เบฒเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปเบกเปˆเบ™ API backend, เป€เบŠเบดเปˆเบ‡เปเบ•เปˆเบฅเบฐเป„เบฅเบเบฐเบšเปเปˆเปเบ™เปˆเบ™เบญเบ™ (เบซเบผเบฒเบเป€เบ—เบทเปˆเบญเบซเบผเบฒเบเบเปˆเบงเบฒเบ›เบปเบเบเบฐเบ•เบด). เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ nginx เปเบกเปˆเบ™เบžเบฝเบ‡เบžเปเปƒเบ™เบเปเบฅเบฐเบ™เบตเบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ”, เบžเบงเบเป€เบฎเบปเบฒเบžเบปเบšเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ” 502 เบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบ›เบปเบเบเบฐเบ•เบดเป€เบžเบฒเบฐเบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเบชเบฒเบกเบฒเบ”เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบฅเบฐเบšเบปเบšเป„เบ”เป‰เป„เบงเบžเปเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เบ—เบตเปˆเบ„เบฒเบ”เบงเปˆเบฒเบˆเบฐเบกเบตเป‚เบซเบผเบ”.

เป€เบžเบทเปˆเบญเบ—เบปเบ”เปเบ—เบ™เบเบฒเบ™เปเบเป‰เป„เบ‚เบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ™เบณเปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ PHP/Go เบ—เบณเบญเบดเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปƒเบ™เบ•เบปเป‰เบ™เบ›เบต 2018. เปเบฅเบฐเบ—เบฑเบ™เบ—เบตเป„เบ”เป‰เบฎเบฑเบšเบœเบปเบ™เบเบฐเบ—เบปเบš incredible! เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบˆเบฑเบ”เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ” 502 เบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™, เปเบ•เปˆเบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบซเบผเบธเบ”เบœเปˆเบญเบ™เบˆเปเบฒเบ™เบงเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบชเบญเบ‡เบชเปˆเบงเบ™เบชเบฒเบก, เบ›เบฐเบซเบเบฑเบ”เป€เบ‡เบดเบ™เบซเบผเบฒเบเปเบฅเบฐเบขเบฒเปเบเป‰เบ›เบงเบ”เบซเบปเบงเบชเปเบฒเบฅเบฑเบšเบงเบดเบชเบฐเบงเบฐเบเบญเบ™เปเบฅเบฐเบœเบนเป‰เบˆเบฑเบ”เบเบฒเบ™เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™.

เปƒเบ™เบเบฒเบ‡เบ›เบต, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เปเบเป‰เป„เบ‚เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เบˆเบฑเบ”เบžเบตเบกเบกเบฒเบกเบฑเบ™เบขเบนเปˆเปƒเบ™ GitHub เบžเบฒเบเปƒเบ•เป‰เปƒเบšเบญเบฐเบ™เบธเบเบฒเบ” MIT เปเบฅเบฐเบ•เบฑเป‰เบ‡เบŠเบทเปˆเบกเบฑเบ™. เบ–เบฐ เปœเบปเบ™ Runner, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เป€เบ™เบฑเป‰เบ™เบซเบ™เบฑเบเปƒเบชเปˆเบ„เบงเบฒเบกเป„เบง incredible เปเบฅเบฐเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡เบ•เบปเบ™.

RoadRunner เบชเบฒเบกเบฒเบ”เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ stack เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป„เบ”เป‰เปเบ™เบงเปƒเบ”

เบ„เปเบฒโ€‹เบฎเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบฑเบ เบ–เบฐ เปœเบปเบ™ Runner เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰ Middleware net/http เปƒเบ™เบ”เป‰เบฒเบ™ Go เป€เบžเบทเปˆเบญเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบเบงเบ”เบชเบญเบš JWT เบเปˆเบญเบ™เบ—เบตเปˆเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเป„เบ›เบฎเบญเบ” PHP, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™ WebSockets เปเบฅเบฐเบฅเบงเบกเบฅเบฑเบ”เบ—เบปเปˆเบงเป‚เบฅเบเปƒเบ™ Prometheus.

เบ‚เปเบ‚เบญเบšเปƒเบˆเบเบฑเบš RPC เบ—เบตเปˆเบกเบตเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบ›เบตเบ” API เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” Go เปƒเบ”เบชเปเบฒเบฅเบฑเบš PHP เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ‚เบฝเบ™ wrappers. เบชเบดเปˆเบ‡เบ—เบตเปˆ เบชเบณ เบ„เบฑเบ™เบเบงเปˆเบฒเบ™เบฑเป‰เบ™, เบ”เป‰เบงเบ RoadRunner เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ” เบ™เบณ เปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ HTTP เปƒเปเปˆ. เบ•เบปเบงเบขเปˆเบฒเบ‡เบ›เบฐเบเบญเบšเบกเบตเบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เปเบฅเปˆเบ™เปƒเบ™ PHP AWS Lambda, เบเบฒเบ™เบชเป‰เบฒเบ‡ breakers เปเบ–เบงเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰, เปเบฅเบฐเปเบกเป‰เบเบฐเบ—เบฑเป‰เบ‡เบเบฒเบ™เป€เบžเบตเปˆเบก เบ. เบž. เบž เบเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ.

เบ”เป‰เบงเบเบ„เบงเบฒเบกเบŠเปˆเบญเบเป€เบซเบฅเบทเบญเบ‚เบญเบ‡เบŠเบธเบกเบŠเบปเบ™ PHP เปเบฅเบฐ Go, เบžเบงเบเป€เบฎเบปเบฒเบ›เบฑเบšเบ›เบธเบ‡เบ„เบงเบฒเบกเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡เบ‚เบญเบ‡เบเบฒเบ™เปเบเป‰เป„เบ‚, เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เป€เบ–เบดเบ‡ 40 เป€เบ—เบปเปˆเบฒเปƒเบ™เบšเบฒเบ‡เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš, เบ›เบฑเบšเบ›เบธเบ‡เป€เบ„เบทเปˆเบญเบ‡เบกเบทเปเบเป‰เป„เบ‚, เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบเบฑเบš Symfony framework, เปเบฅเบฐเป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ HTTPS, HTTP/2, เบ›เบฅเบฑเบเบญเบดเบ™, เปเบฅเบฐ PSR-17.

เบชเบฐเบซเบฅเบธเบš

เบšเบฒเบ‡เบ„เบปเบ™เบเบฑเบ‡เบ–เบทเบเบˆเบฑเบšเบขเบนเปˆเปƒเบ™เปเบ™เบงเบ„เบดเบ”เบ—เบตเปˆเบฅเป‰เบฒเบชเบฐเป„เบซเบกเบ‚เบญเบ‡ PHP เป€เบ›เบฑเบ™เบžเบฒเบชเบฒเบ—เบตเปˆเบŠเป‰เบฒ, เบšเปเปˆเบ„เปˆเบญเบเบ”เบตเบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ‚เบฝเบ™ plugins เบชเปเบฒเบฅเบฑเบš WordPress. เบ„เบปเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเป€เบงเบปเป‰เบฒเบงเปˆเบฒ PHP เบกเบตเบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง: เป€เบกเบทเปˆเบญเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เปƒเบซเบเปˆเบžเบฝเบ‡เบžเป, เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เป€เบฅเบทเบญเบเบžเบฒเบชเบฒเบ—เบตเปˆ "เปเบเปˆ" เบซเบผเบฒเบเบ‚เบถเป‰เบ™เปเบฅเบฐเบ‚เบฝเบ™เบ„เบทเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเบฐเบชเบปเบกเบกเบฒเบซเบผเบฒเบเบ›เบต.

เบ—เบฑเบ‡เบซเบกเบปเบ”เบ™เบตเป‰เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบ•เบญเบš: เบ„เบดเบ”เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡. เบžเบงเบเป€เบฎเบปเบฒเป€เบŠเบทเปˆเบญเบงเปˆเบฒเบžเบฝเบ‡เปเบ•เปˆเบ—เปˆเบฒเบ™เบเปเบฒเบ™เบปเบ”เบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เปƒเบ”เป†เบชเปเบฒเบฅเบฑเบš PHP. เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เปƒเบŠเป‰โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เบ‚เบญเบ‡โ€‹เบ—เปˆเบฒเบ™โ€‹เบซเบฑเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เบˆเบฒเบโ€‹เบžเบฒโ€‹เบชเบฒโ€‹เบซเบ™เบถเปˆเบ‡โ€‹เป„เบ›โ€‹เบญเบตเบโ€‹เบ›เบฐโ€‹เบเบฒเบ™โ€‹เบซเบ™เบถเปˆเบ‡โ€‹, เบžเบฐโ€‹เบเบฒโ€‹เบเบฒเบกโ€‹เป€เบžเบทเปˆเบญโ€‹เบŠเบญเบโ€‹เบซเบฒโ€‹เบ—เบตเปˆโ€‹เบชเบปเบกโ€‹เบšเบนเบ™โ€‹เปเบšเบšโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบ„เบงเบฒเบกโ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ‚เบญเบ‡โ€‹เบ—เปˆเบฒเบ™โ€‹, เบซเบผเบทโ€‹เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบ„เบดเบ”โ€‹เบงเปˆเบฒโ€‹เบžเบฒโ€‹เบชเบฒโ€‹เป€เบ›เบฑเบ™โ€‹เป€เบ„เบทเปˆเบญเบ‡โ€‹เบกเบทโ€‹. เบ‚เปเป‰เบšเบปเบเบžเปˆเบญเบ‡เบ‚เบญเบ‡เบžเบฒเบชเบฒเป€เบŠเบฑเปˆเบ™ PHP เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เป€เบซเบ”เบœเบปเบ™เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบชเปเบฒเป€เบฅเบฑเบ”เบ‚เบญเบ‡เบกเบฑเบ™. เปเบฅเบฐเบ–เป‰เบฒเบ—เปˆเบฒเบ™เบฅเบงเบกเบกเบฑเบ™เบเบฑเบšเบžเบฒเบชเบฒเบญเบทเปˆเบ™เป€เบŠเบฑเปˆเบ™ Go, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบˆเบฐเบชเป‰เบฒเบ‡เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบเปˆเบงเบฒเบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ–เบทเบเบˆเปเบฒเบเบฑเบ”เบเบฒเบ™เปƒเบŠเป‰เบžเบฒเบชเบฒเบ”เบฝเบง.

เป‚เบ”เบเป„เบ”เป‰เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบเบธเปˆเบก Go เปเบฅเบฐ PHP, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เป€เบงเบปเป‰เบฒเบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบฎเบฑเบเบžเบงเบเป€เบ‚เบปเบฒ. เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเป„เบ”เป‰เบงเบฒเบ‡เปเบœเบ™เบ—เบตเปˆเบˆเบฐเป€เบชเบเบชเบฐเบฅเบฐเบซเบ™เบถเปˆเบ‡เบชเปเบฒเบฅเบฑเบšเบ„เบปเบ™เบญเบทเปˆเบ™ - เปƒเบ™เบ—เบฒเบ‡เบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบก, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบŠเบญเบเบซเบฒเบงเบดเบ—เบตเบ—เบตเปˆเบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบกเบนเบ™เบ„เปˆเบฒเบซเบผเบฒเบเบเบงเปˆเบฒเบ™เบตเป‰เบˆเบฒเบ stack เบ„เบนเปˆเบ™เบตเป‰.

UPD: เบžเบงเบเป€เบฎเบปเบฒเบเบดเบ™เบ”เบตเบ•เป‰เบญเบ™เบฎเบฑเบšเบœเบนเป‰เบชเป‰เบฒเบ‡ RoadRunner เปเบฅเบฐเบœเบนเป‰เบ‚เบฝเบ™เบฎเปˆเบงเบกเบเบฑเบ™เบ‚เบญเบ‡เบšเบปเบ”เบ„เบงเบฒเบกเบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš - Lachesis

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™