α αα α! ααΎαααααααα
Badoo
αααα»αααα»ααααΆαααααΆαααααΈαααα PHP ααΆαααΆαααΈαα ααααΎααααΆαααααΆααα α’ααααααααΌαααααΆαααΆαααΆααααααΎαα‘αΎα ααααα·ααααααααααΆαααΆαααΎαα‘αΎα - αααααααα’αααα’αΆα ααααααααα·α αα·αααααααΈααααααΆαα’αΆαα»ααΆαααΌααα αααα»α PHP αααααααΆααααα αΆα’αααΈααΆααα’ααα αααα’αα»ααααΆαα±αα Spiral Scout αααααα αα»ααααα RoadRunner αα·αααΌα PHP-FPM αα αα·ααααα’αΆαα’αααα αα αΆααααΆαααααΎααααααααα’ααααααααααααααααα (αααααΈααΆαα·ααΈααΆααααααααααααΎα±αααααα»αααααΆααααααααΎαααΆαα’αα·ααααααααααα)α αα αα α»ααααααααΎααααα»ααα·αααααΆαα½αα§αααααααα ααα»ααααααΎααα·αααΆααααΆαααααααααΆαα½ααααααααΌαα ααααααααα α‘αΎαααα ααΎααααΈααααΎα±ααααΆααααα αΆααα½αααααΆαααααααααΆαααΈαααΆα, ααΎαααααα»αααααααΆαααΆαααααααααααα ααααΈαααααΆα RoadRunner ααΈ Spiral Scout α
αα·ααΈααΆαααααααΈα’αααααααΊαα αα·αααΎαα αα ααααααααααΆααααα αΆααααααΎα ααΎαααααααΎααΆααΉαααΆαααααα»ααα PHP αα·α Go αααααα½αααΆαα’αααααααααααααααΆααΆααΆααααΈα α αΎααα·αααααααα αααα½ααα αααα»αααΆααααα α·αααααααΆααΆααααααααα
ααΌαααΈαααΆαααΆαα½α!
αααα»ααααααααααααααΆαα
α»ααααααααα ααΎαααΆααααααΎααααααα·ααΈαααααΆαααααα»αα αα»αααΈαααααΈ
ααααΎαααααααΆααααα ααΎαααΆαααααΎαααΆ Go ααΆαα’αα»ααααΆαα±ααααΎααααααΎααααααα·ααΈααααΆααα»α ααΆαα½αααΉαααΆααααααα’ααααΎαααΆααα αΌαααα 40 ααα ααΆαα½αααΆ ααΎαα’αΆα αααααΈαααα·ααα PHP αααααΆαααααΆααααααααΎα αααααααΎα’ααααΆαααααΎαα‘αΎααααααΆααα½ααααα αΌαααααΆααΌαα’αααααααααααααααΆααΆααΆααααΈαα
ααΎαααΉαααααΆααα’αααααΈαααααααααΆααα½ααααα
αΌαααααΆαα Go αα·α PHP αα½ααααααααΆααααα αΆα’αα·αααααααα·αααααΆαα αα·ααααααααααΆααΆαααααααααΆααα
ααΆα§ααααααααααΆαααα½αααΎα αααα’αΆα
αααα
αΆαααααα αΆαα½αα
ααα½ααααααΆααααααΉα
ααα·ααΆααΆαα’αα·αααααα PHP αααα αΆαααααααααα’αααα
αα»ααααααΎααα·ααΆαα’αααΈαααααααα’αααα’αΆα ααααΎ Go ααΎααααΈααααΎα±ααααααΌ PHP ααααΆααα‘αΎααα·α ααΌααααα‘ααααΎαααα·ααααΆαα’αα·αααααα PHP ααααΆαααΎαααααα’αααα
αααα»αααααΈααΆαα αααΎα α’αααααααΎαααΆααααααα·ααΈααααα’ααααααααααΎααΆααα½ααααα αΌαααααΆαααααΆαααΈααααααααΆα nginx αα·ααααΆαααΈααα PHP-FPM α α’ααΈααααααΎα―αααΆααα·αα·αααα αα·ααααααΌαααααααααΎααΆααααΆαααα PHP-FPM ααααααααα PHP-FPM αααα½αααΆααααα·ααααα·ααΌα PHP α α’ααααααα ααααΆαααα»αααααΎααΆααα½ααααα αΌαααααΆααααααα·αααα·α αα Apache αα·α mod_php α ααα»αααααααααΈααΆααΆααααΎαααΆααα»αααααΆααααα·α ααααα½α ααααααααααααΆαααααΊααΌα ααααΆα
αααααΎαααΈααααααα PHP-FPM ααααα·ααααα·ααΌααααααα·ααΈα αα αααααααΎα αΌααα PHP-FPM α αΆααααααΎαααααΎαααΆαααΌα PHP α αΎαααααααΆααααααααΆααααα’α·αααααααΎααΆαααααααααααΆαααΆαααααααΆ (_GET, _POST, _SERVER ααα)α
ααααΆαααΆααα·αα’αΆα ααααΆααααααΌαααα‘α»ααααααααα·ααααα·ααααααααΈα PHP ααΆααα ααΌα αααααααααααΆααααα½ααααααΎααααΈααα½αααΆααααα»ααα·αααααααααα αΌαααααΈααΊαααααΆααααα’αΆαα’αααα αα αΆαααααΎαααΆα α αΎαα αΆααααααΎαααΆαααααααα
ααααΌααααα·ααααα·αααααΆααα»ααααααααα·ααΆα αααΎαα α’ααααα·αα αΆαααΆα ααααα½αααΆααααα αααΎααααα’αααΈααΆαααααΎααααΆααα’αααα αα αΆαααααα ααααΎαααΆαααΆααα’ααααΊααΆα αααααΆαααΆαααααα»α α αΎαααααα·αααΎαα½ααααα»αα αααααα½ααα "ααααΆαα" ααΆααΉαααααΌαααΆααααααΎαα‘αΎααα·ααααααααααααααααα· α αΎαααΆααΉααα·ααααααΆαααααααααΎαααΆαααααα ααααααααα ααα»αααααα·ααΈααΆααααααααααααΆααα»ααα·ααααα·αααααα α‘αΎααα αααααααΆααΆαααααΎααΆαααααααΆααααααα·ααΈα
αα»ααα·ααααα· αα·αα’αααααααΆαααααα·ααααΆα PHP ααααααΆα
ααααα·αααΎα’αααααΆα’ααααααααΎα PHP αααααΆαααααΆααα·ααααΆααΈαα αααα’αααααΉαααΈαααααααααααααΌαα αΆααααααΎαααααααααααΈ - ααΆαα½αααΉααααααΎαααααααααααααα½αα ααΆααΆααααααΆαααα αΆααααααΆαα’αΆααααα ORMs ααΆααααααα αα·αααααΌα α αΎαααΆααΆααα·αααΆαα ααΆααααΆααααα αΌαααααα’αααααααΎααααΆααα’αΆα ααΆααααα½αααΆααα αΌααα αααα»αααααα»αααα½α (Symfony/HttpFoundation α¬ PSR-7)α ααα»αααΊα‘αΌα!
ααα»ααααα’αααΈααααααααΆαααΆααααααααααααΆα αα αααα»αααααααααααααα·ααα ααααΆαααΆαα½α ααΎααααΈααααΎαααΆαααααΎααααα’αααααααΎααΆαααα α¬ααΆαα αΌααα ααΆααααΌαααααΆααα·αααααα α’αααααΉαααααΌααααα»αα―αααΆααααΆαα αα ααΆααααΆαααα·α αααααΎαααααΆααααΆα αααΎα αα·ααααααΆαααααααα ααΆααααααααααΆα αααΎαα ααα»ααααα’αααΈαααα’αΆααααααααα»ααααααΊααΆ αααααΆααααΈαααα αααα·α αα ααΆαααΈαα½αα α’αααααΉαααααΌααααααα‘αΎααα·αααΌαα’αααΈαααΆααα’αα α αΎαα αΆααααααΎαα‘αΎααα·αα ααΌαααΆααα’αααααα’αααααΎαααα αΆααααααΎαααααΆαααΆααααΆααααααααα αααααΆααααα½αααααααΆ α’αααααΉααααααααΎαααΆαααααΎαααααααααααα αΎαα ααααΆααααΏαααααα ααΆααα’αααααααααααααα·ααΈααΆααααΆααααααααααααΆααΆααΆααααα αααα’αααααΉαααΎααα»αααΆαααααααα
αα·ααααα PHP ααΆαααααααααα·ααΈαααααααΆααααα αΆαααα’ααααΆα
αααΎαααααΆα αααααααΎααααΆαααα
αα
ααααααααα»ααααα·αααααααΆααα ααΈααααΌα αααααα αααααΆααααααααααΎα±αααααααΎαα‘αΎα ααααΆαααααααΆααααα ααα»αααααα
ααΈαααα
αα α’ααααα
ααααααΌαααααααααααα·ααΈααΆααααΌαα‘αΎααα·α α αΎαα
αΆααααααΎαααααα αΎααααααααα . (ααααααααααΆααααααα’αααααααααα αααα αΆαααααΉαααααΌαααΆααααααααΆαααααααααααΆαα½αααΉαααΆαααααααα
ααΎ PHP ααΆαα½α Go α’αΆα αααααΆαα αααΎαααΆαααααΎαα½ααα?
ααΆα’αΆα αα αα½α αααα»αααΆααααααααααααΈα PHP αααααΆααααααααααααΆαααΈαααΈααΆααΈ (αα αΌαααααααα α¬α αααΎααααα)α α§ααΆα ααα αα·α αα ααΆα cron, CSV parser, α’αααααααααα½αα αα½αααααΆααα’ααααααΎααΆαααΆαααααΆααΈαααΌααΌα ααααΆα αα½αααααΆαααααΆααα·α αα ααααα·ααααα·ααΆ α αΎααααα αΆααα·α αα ααΆααααααΆααα ααΌααααα·ααα αααα»αα’αααα αα αΆαααααααααααααΆ ααααααααΆαα»αααΈααΈαα·ααΆααΈααααΆαααααα αααααΆαααΆαααα αΆαααααααααΆα αααΎααααααΆαααΆαααΎααααΈαααα»αααααααααα αα·ααααααα·ααΈα
ααα»ααααβααΆαβαααααΎαβααααααΈαβαααβααΆαβα’αΆαα»βαααβαα·αβαααβααΆβααΆαβααΆαβαααα½αβαααβααα ααα α»αααΆαα½αααΆααααααΆααααααΎαααΆαααΆαααααα»α ααΆαααααΎααααα·αα·α ααααααΆαααα ααααΆαα’αααα αα αΆαααΊααΆααΆαααΉααααααΆα α αΎαααΆαααααα α»α F5 ααΊαα·αα’αΆα ααααΎαα ααΆααααααα
ααααΆαααΆαααΆααααααΎαα‘αΎαααΆαα½αααΉαααΆαα ααααααΆα PHP 7α α’ααααααααΌαααααΆααααα’αΆα αα»αα α·αααααΆαααΆααααα αΆααααα½α ααΆααΆααααααΆααααα½ααααα»αααΆααααααααΆαααα α»α α αΎααααααααααααααΊαααα₯α‘αΌααααααΆαααααα»ααΆαααα ααααΆαα αα·αα αΎα αα·ααααααα ααααααΌααααα»αααααααααααΆαα½αααΉαααΆαα αα αΆα α αΎαααααΌαααΉαααΈαααα αΆαααααα αααα»αααΌα (ααΎααΆαααΆααΆαααα’αΆα αα·αα’αΎααΎααΉαααΏαααΆααααααα?) ααααααΆαααΆααααα PHP 7 ααΆαααΆαααααΆααααα’αΎααα·α ααΆααα αααα»αα αΆααααααΆααααΎαα
ααΎααΆα’αΆα αα αα½α αααααα»αααΆαααααααΌααααΆαααααΎααΆαααΆαα½αααααααΈα PHP αααααΆαα’αΆαα»ααΆαααΌααα αααααααΆαα ααΉααα·α αα ααΆαααΌα ααΆα ααΆα αααΎαααα ααΌα ααΆααΆαααααΎαααΆαααααΎ HTTP α αΎααααα ααα»ααα αααα αΆαααααααΌαααΆααααα»αααΆααααα»αα’αααΈαααΆααα’ααααΈαααααΆαα½αααΉαααααΎααΈαα½αα?
ααΎααααΈαααααααΆααααα αΆααα ααααΌαααΎαααααΌαα’αα»αααααααααα·ααΈαααΆαααΈααα αααα’αΆα ααα½αααααααΎ HTTP αα·ααααααΌααα½αααΆαααααα½αααα ααΆαααα»ααααα·α PHP ααααα·αα αΆαααΆα ααααααΆααααΆααΆαααααα
ααΎαααΉαααΆααΎαα’αΆα ααααα web server ααΆ PHP αα»ααα (PHP-PM) α¬ααααΎ C extension (Swoole)α α αΎααααααΈααΆαα·ααΈααΆαααααααΈαα½ααααΆααα»ααααααααα·ααααααΆααααα αααααΎαααΆααααΈααα·αααααΉαααΎααα - ααΎαα ααααΆαα’αααΈαααααααααα ααΎαααααΌαααΆαα αααΎαααΆααααΆαααΈαααααα ααααα - ααΎαααααΉαααΆααΉαααα½αααΆααααααααααΆααααα’αΆα αα½αααααααααααΎαααΈαααα αΆαααααΆααααααΉα "ααΆαα αΆααααααΎαααΉα" αα αααα»α PHP ααααααα»αααααααα½αα’αΆα ααααααααα½αααΆααααΆαααΆααααα½α αα·ααααααΈααααααΆαααααααα·ααΈααΆααααΆααα αααααΊααΎαααααΌαααΆααααΆαααΈααααααααα·ααΈα
ααΎ Go α’αΆα αα½αααΏααααααΆααα? ααΎαααΆαααΉαααΆααΆα’αΆα αααααΆαααααΆααΆα ααααααααααα·ααΈα αΌααα αααα»ααααααααααααααΈααααα½αα ααΆααΊααΆαααα·ααΆαααα; ααααΎβααααΌβααααΎαααΆαβααααβααααΆ (ααααβααααΆ) αα·αβαααααΆαααβαααααΆααβααααΎααΆαβααΆαα½α HTTP; α αΎαα α»αααααα αααααΆααααααααααΎαα αα ααΆααααΆαα αα·αααΆααα½ααααα αΌαααΉαα’αΆα ααααΆααααααΆαααα½αααΎαα
ααΆαααααΆαααααΆααα½ααααα αΌαααΆααΆααααααααααα·ααΈααΈα
ααΆααααΌα α αΆαααΆα αααααΌααααααααΆααΎαααααα·ααΈααΈα α¬α αααΎαααΉαααΆααααααααΆαα αα·ααα αααααΆαααΌα ααααα α
α§ααΆα αααααΆαααααΎ
ααΎαααΆααααααα α α·αααααααΎαα·ααΈααΆαααααααΆααααααΆαααααα αααα ααΎααααΈαααααΎαα’αααααααααααΆαααααΎαααΆαααΆαααααααα/αααααα αα·ααΈααΆααααααααααΆααααα αΆαααΆα’αΆα αα»αα α·αααααΆααααα»αααααααααΆα αααΎαααααααααααααααα α αΎαααααΌαααΆαααααΎα±αααααααΎαααα’αα ααααα·αααααααααααααα·ααααα·ααΆαα
ααΎααααΈα
αΆααααααΎαααΆαα½α ααΎαααΆααααααΎααα·ααΈααΆααααααααααααααΈαααΆαααααα½ααααααΆααααΆαααααΆααααααΌααα·αααααααααΆαααααΎαααΆα αα·αααΆααααααααΆαααα α»ααααα»αααΆααααααΌαα αα
αααα»αααααααααααΆαααααααα»αααααααΆ αααααααααα·ααΈααΆααααααΊαααααααα
ααΉα
αα
ααΎααααα PHP ααΎαααΆαααααΎ
ααΆα αΆααααΌα
ααΆαα½αααΎαααΆαα·ααΈααΆααα½ααα·ααααααααααΆαααα α αΎαααΎαααΆααααααααααααααΆααααα»αααΆαα α
ααΌααααα
ααΆαα ααα αΆαααΆαααΆαααΎαααααα PHP ααΆα αααΎαα
αααααΆααααΈα’αα»ααααααααααΆαα’αααααααα ααΎαα αΆααααααΎααα·αα’αααΈαα·ααΈαααααΆαααααα·αααααΆααααα»ααααα»αααΆααααααααΆααα·α αα αα ααααΎαααΆα PHP α αα ααααα·α αα ααΆαααααα αααΆαααΈααααααααα·ααΈααααΌαααααααΎαααΎααα»ααααα·αα₯ααα·ααααα ααΎααααΈααααα·ααααα·ααΆα ααααα·αααΎαααααα/ααααΎαααΆαα αααααααΆαααα α»α α¬ "ααααΆαα" ααΎααααα αΆααααΆ α αΎααααααΎαααααΈαα½αααΎααααΈαααα½αααΆα α αΎαααααα·αααΎαααααααα·αααα·α/ααααΎαααΆαααΆααααα ααααααααααα ααΎααααααΌαααΆαα αααα»ααααααααααα’αΆα ααααΆαααΎααααΈαααααααΆαααΆαα
ααΎααααΈαααααΆαα»αα’αΆαααααααααααααα ααΎαααΆαααααΎ
ααΆαααααα ααΎαααα½αααΆααααΆαααΈααα PHP ααααααα»αααααΎαααΆααααααΆααααααααΆαααααΎαααΆαααααΎααΆαα½αααααααα αΆααααα»ααααααααααααΈαα
ααΎααααΈα±αααααααα·ααΈααααααΎαα
αΆααααααΎαααααΎααΆαααΆαααΆαααΈαααααα ααααα ααΎαααααΌαααααΎαααΎααααααααΆα PHP αααα’αΆα
αα»αα
α·αααααΆα ααΎααααΈααααΆαα±ααααααΎ HTTP α
αΌαα αααα»αααααΈααααααΎαααΎαααααΆαααα
αααααΆααα PSR-7 ααααΌαααΆαα αΆαααα»αααΆαα·αα’αΆα ααααΆααααααΌαααΆα (α’ααααααααα·ααΆαααΆααΆαα·ααααααΆαα αα ααααααα) α’αααα’αα·ααααααααααΌαααααααααααα·ααΈααααα·αα αΆαααα»αααααΎααΆα’αααααΆααααααΆαααααΆαααα ααΆααααΉααααα·αααααααΎαααΆα PHP αααααΆαα’αΆαα»ααΆαααΌαα ααΆαα’αα»ααααα α»ααααααααααααΎα ααααα·αααΆααααΆαααααα ααΎααα ααΌα αααα
ααΌαααααΆα RoadRunner - αααΆαααΈααααααααα·ααΈ PHP ααααΎαααΆααααααα
αα·α αα ααΆαααΆαααααααααΌαααααααΎαααΊαααααααΆαααααααααα API αααααΎαα‘αΎαααΆαααααΆααααααα·αα’αΆα ααΆααα»αααΆαα»αααΆα (α αααΎαααα αααΎαααΆαααααααΆ)α αααααΈααΆ nginx αααααααααΆαααα αααα»αααααΈααΆαα αααΎαααααα ααΎαααΆααα½ααααααααΆαααααΆααααΌαααα α»αα ααα½α 502 αααααΆαααααΎααα·αα’αΆα ααααΎα±ααααααααααααΆααα»αααααΆαααΆαααΏααααααααααΆαααααααΆααααΆαααΎαα‘αΎαααααΆαααααΉααα»αα
ααΎααααΈαααα½ααααααααααΆαααα ααΎαααΆαααΆαααααααΆααααΆαααΈααααααααα·ααΈ PHP/Go ααααΌαααααααΎααα ααΎαααααΆα 2018 α α αΎαααα½αααΆαααααα·αααααΆααα·ααα½αα±ααααΏααααΆαα! ααΎααα·αααααΉααααααα αΆααααα α»α 502 ααΆαααααα»αααα»ααααααα ααα»ααααααΎαα’αΆα ααΆαααααααα ααα½ααααΆαααΈαααααΆα XNUMX/XNUMX ααααααααααααΆααααΆαα αααΎα αα·αααααΆαααΊααααΆααααααΆαααα·ααααα αα·αα’ααααααααααααααα·αααα
αα
ααΆαααααααΆαααααΆα ααΎαααΆααααααα’αααααααααΆαααααααΎα αααααΆαααααα»αααααΆαα
ααΎ GitHub αααααα’αΆααααΆααααα MIT α αΎαααΆαααααααααΆααΆ
ααααααα RoadRunner α’αΆα αααααα’αααα’αα·ααααααααααα’αααα
αααααα·ααΈ
ααΌαα’ααα»αα
αααα RPC αααααααΆααααααΆαα½α α’αααα’αΆα
ααΎα API αααααααΆααα Go ααΆαα½ααααααΆαα PHP ααααα·αα
αΆαααΆα
αααααααααααα·ααΈααααααα ααααΆααααΆαααααα
ααα ααΆαα½αααΉα RoadRunner α’αααα’αΆα
ααΆαααααααΆααααΆαααΈαααααααα·ααααααΆ HTTP ααααΈα α§ααΆα ααααα½αααΆααααααα·ααΈαααααααΆαααααααα»αααααΎαααΆααα
αααα»α PHP
αααααΆααααα½αααΈαα αααα PHP αα·α Go ααΎαααΆαααααΎα±αααααααΎαα‘αΎαααΌααααααααΆααααααααααααΆα αααααΎαααΆαα’αα»αααααααααα·ααΈαα αΌαααα 40 αααααα»αααΆαααααΎααααααα½αα ααα½α ααΆααααααα’α§αααααααααΆααααα α»α α’αα»ααααααΆααα½ααααα αΌαααΆαα½αααααααααα Symfony αα·αααααααααΆαααΆαααααααααΆαα HTTPS, HTTP/2, αααααα·ααΈαααα½α αα·α PSR-17 α
ααα ααααΈααααα·ααααΆα
ααα»ααααα½αα ααα½ααα ααααααΌαααΆαααα αΆααααΆααα αααα»ααααα·αα α½ααααααα PHP ααΆααΆααΆααΆααΊα αα·ααα·αααΆααααααΆααααααΆααααα’αααααΆααααααΆαααααααααααα·ααΈαααα½ααααααΆαα WordPress ααα»αααααα ααα»αααααΆααααααααααΆααα’αΆα αα·ααΆαααΆ PHP ααΆαααααααααααααααα αα αααααααααααα·ααΈαααααα α’αααααααΌαααααΎαααΎαααΆααΆ "α αΆαααα»α" ααααααααα α αΎααααααα‘αΎααα·αααΌαααΌαααααΆαααΌαααααααααΌαααΆααααα»αααααααααΆα αααΎαααααΆαα
α ααααααΏαααΆααα’ααααααααα»αα ααααααΎαα αα·ααααααααα ααΎαααΏααΆααΆαααα’ααααααααααΆαααΉααααααΉαααΆαα½ααααααΆαα PHP α α’αααα’αΆα α αααΆααααααααα½αααΈαα·αααααα’αααααααΆααααααΌαααΈααΆααΆαα½ααα ααΆααΆαα½αααα αααααααΆααΆααααααααααΆαααααΌααααααααα’α₯αααα αααααααΆαααααααΌαααΆαααααα’ααα α¬α’αααα’αΆα α αΆααααααΎααα·αααΈααΆααΆααΆα§αααααα αα»ααα·ααααα·ααααΆααΆααΌα ααΆ PHP α’αΆα ααΆα ααα»αααααααΆααααΆαααααααααααααΆα α αΎαααααα·αααΎα’ααααααα αΌαααΆααΆαα½αααΆααΆααααααααααΌα ααΆ Go αααα’αααααΉααααααΎαααα·ααααααααΆαα₯αααα·ααααΆαααααα·αααΎα’αααααααΌαααΆααααααα±ααααααΎααΆααΆααΆαα½ααααααα
αααααΆαααααΎααΆαααΆαα½ααααα»α Go αα·α PHP ααΎαα’αΆα αα·ααΆαααΆαααΆααΎααααα‘αΆαααα½αααα ααΎααα·αααΆαααααααααααααα½ααααααΆαααα½αααααααααααααα - αααα»ααα αα·α ααΎαααΉαααααααααα·ααΈααΎααααΈααα½αααΆααααααααΆααααα αααΎαααΈαααααΈααααα
UPDα ααΎαααααΆααααα’ααααααααΎα RoadRunner αα·ααα α’ααααα·ααααα’αααααααΎα -
ααααα: www.habr.com