
ΠΠ΄ΡΠ°Π²Π΅ΠΉ, Π₯Π°Π±Ρ! ΠΠΈΠ΅ Π² Badoo Π°ΠΊΡΠΈΠ²Π½ΠΎ , ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΈΠΌΠ°ΠΌΠ΅ Π΄ΠΎΡΡΠ° Π³ΠΎΠ»ΡΠΌΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π½Π° ΡΠΎΠ·ΠΈ Π΅Π·ΠΈΠΊ ΠΈ Π²ΡΠΏΡΠΎΡΡΡ Π·Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π΅ Π²ΡΠΏΡΠΎΡ Π½Π° ΡΠΏΠ΅ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠ°ΡΠΈ. ΠΠΎΠ²Π΅ΡΠ΅ ΠΎΡ Π΄Π΅ΡΠ΅Ρ Π³ΠΎΠ΄ΠΈΠ½ΠΈ Π½Π°Π·Π°Π΄ ΡΡΠ·Π΄Π°Π΄ΠΎΡ
ΠΌΠ΅ Π·Π° ΡΠΎΠ²Π° PHP-FPM, ΠΊΠΎΠΉΡΠΎ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π°ΡΠ΅ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΏΠ°ΡΠΎΠ²Π΅ Π·Π° PHP, Π° ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ Π±Π΅ΡΠ΅ Π²ΠΊΠ»ΡΡΠ΅Π½ Π² ΠΎΡΠΈΡΠΈΠ°Π»Π½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ.
ΠΡΠ΅Π· ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ PHP Π½Π°ΠΏΡΠ°Π²ΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»Π΅Π½ Π½Π°ΠΏΡΠ΅Π΄ΡΠΊ: ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈ ΡΠ΅ ΡΡΠ±ΠΈΡΠ°ΡΡΡ Π½Π° Π±ΠΎΠΊΠ»ΡΠΊ, ΠΏΠΎΠ²ΠΈΡΠΈ ΡΠ΅ ΡΡΠ°Π±ΠΈΠ»Π½ΠΎΡΡΡΠ° β Π΄Π½Π΅Ρ Π½Π° PHP ΠΌΠΎΠ³Π°Ρ Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π΄Π° ΡΠ΅ ΠΏΠΈΡΠ°Ρ Π΄Π΅ΠΌΠΎΠ½ΠΈ ΠΈ Π΄ΡΠ»Π³ΠΎΠΆΠΈΠ²Π΅Π΅ΡΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅. Π’ΠΎΠ²Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π½Π° Spiral Scout Π΄Π° ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ΅: RoadRunner, Π·Π° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΡ PHP-FPM, Π½Π΅ ΠΏΠΎΡΠΈΡΡΠ²Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Π·Π°ΡΠ²ΠΊΠΈΡΠ΅, ΠΊΠΎΠ΅ΡΠΎ Π΄Π°Π²Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ (Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΡΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΡΠ»ΠΎΠΆΠ½ΡΠ²Π° ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°). Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠ°ΠΌΠ΅ Ρ ΡΠΎΠ·ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, Π½ΠΎ Π·Π°ΡΠ΅Π³Π° Π½ΡΠΌΠ°ΠΌΠ΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π΄Π° ΡΠΏΠΎΠ΄Π΅Π»ΠΈΠΌ. ΠΠ° Π΄Π° Π±ΡΠ΄Π΅ ΡΠ°ΠΊΠ°Π½Π΅ΡΠΎ ΠΏΠΎ-Π·Π°Π±Π°Π²Π½ΠΎ, ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°ΠΌΠ΅ ΠΏΡΠ΅Π²ΠΎΠ΄ Π½Π° Π°Π½ΠΎΠ½ΡΠ° Π½Π° RoadRunner ΠΎΡ Spiral Scout.
ΠΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π² ΡΡΠ°ΡΠΈΡΡΠ° Π½ΠΈ Π΅ Π±Π»ΠΈΠ·ΡΠΊ: ΠΏΡΠΈ ΡΠ΅ΡΠ°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π½Π°ΡΠΈΡΠ΅ Π·Π°Π΄Π°ΡΠΈ Π½ΠΈΠ΅ ΡΡΡΠΎ Π½Π°ΠΉ-ΡΠ΅ΡΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΠΎΡ PHP ΠΈ Go, ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΉΠΊΠΈ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π° ΠΎΡ Π΄Π²Π°ΡΠ° Π΅Π·ΠΈΠΊΠ° ΠΈ Π½Π΅ ΠΎΡΠΊΠ°Π·Π²Π°ΠΉΠΊΠΈ ΡΠ΅ ΠΎΡ Π΅Π΄ΠΈΠ½ Π² ΠΏΠΎΠ»Π·Π° Π½Π° Π΄ΡΡΠ³.
ΠΡΠΈΡΡΠ½ΠΎ Π³Π»Π΅Π΄Π°Π½Π΅!
ΠΡΠ΅Π· ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π΄Π΅ΡΠ΅Ρ Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΡΡΠ·Π΄Π°Π²Π°Ρ ΠΌΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΊΠ°ΠΊΡΠΎ Π·Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΎΡ ΡΠΏΠΈΡΡΠΊΠ° , ΡΠ°ΠΊΠ° ΠΈ Π·Π° Π±ΠΈΠ·Π½Π΅Ρ Ρ Π°ΡΠ΄ΠΈΡΠΎΡΠΈΡ Π΄ΠΎ 500 ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ. ΠΡΠ΅Π· Π²ΡΠΈΡΠΊΠΎΡΠΎ ΡΠΎΠ²Π° Π²ΡΠ΅ΠΌΠ΅ Π½Π°ΡΠΈΡΠ΅ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Ρ Π° Π±Π΅ΠΊΠ΅Π½Π΄ ΠΎΡΠ½ΠΎΠ²Π½ΠΎ Π½Π° PHP. ΠΠΎ ΠΏΡΠ΅Π΄ΠΈ Π΄Π²Π΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ Π½Π΅ΡΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠ΅ ΠΎΡΡΠ°Π·ΠΈ Π½Π΅ ΡΠ°ΠΌΠΎ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° Π½Π°ΡΠΈΡΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈ, Π½ΠΎ ΠΈ Π½Π° ΡΡΡ Π½Π°ΡΠ° ΠΌΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡ β Π²ΡΠ²Π΅Π΄ΠΎΡ ΠΌΠ΅ Golang (Go) Π² Π½Π°ΡΠΈΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅Π½ ΡΡΠ΅ΠΊ.
ΠΠΎΡΡΠΈ Π²Π΅Π΄Π½Π°Π³Π° ΠΎΡΠΊΡΠΈΡ ΠΌΠ΅, ΡΠ΅ Go Π½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ ΠΏΠΎ-Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π΄ΠΎ 40 ΠΏΡΡΠΈ. Π‘ Π½Π΅Π³ΠΎ ΡΡΠΏΡΡ ΠΌΠ΅ Π΄Π° ΡΠ°Π·ΡΠΈΡΠΈΠΌ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈΡΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈ, Π½Π°ΠΏΠΈΡΠ°Π½ΠΈ Π½Π° PHP, ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°ΠΉΠΊΠΈ Π³ΠΈ ΡΡΠ΅Π· ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΠΎΡ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π°ΡΠ° Π½Π° Π΄Π²Π°ΡΠ° Π΅Π·ΠΈΠΊΠ°.
Π©Π΅ ΡΠ°Π·ΠΊΠ°ΠΆΠ΅ΠΌ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡΡΠ° Go ΠΈ PHP ΠΏΠΎΠΌΠ°Π³Π° Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅Π°Π»Π½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° ΠΈ ΠΊΠ°ΠΊ ΡΡ ΡΠ΅ Π΅ ΠΏΡΠ΅Π²ΡΡΠ½Π°Π»Π° Π² ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ΡΠΈ ΡΠ°ΡΡ ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ .
ΠΠ°ΡΠ°ΡΠ° Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½Π° ΡΡΠ΅Π΄Π° Π·Π° PHP ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°
ΠΡΠ΅Π΄ΠΈ Π΄Π° ΡΠ°Π·ΠΊΠ°ΠΆΠ΅ΠΌ ΠΊΠ°ΠΊ Ρ Go ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΎΠΆΠΈΠ²ΠΈΠΌ ΠΌΠΎΠ΄Π΅Π»Π° Β«ΡΠΌΠΈΡΠ°Π½Π΅Β» Π½Π° PHP, Π½Π΅ΠΊΠ° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π²Π°ΡΠ°ΡΠ° ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π° ΡΡΠ΅Π΄Π° Π·Π° PHP ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°.
Π ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΠ»ΡΡΠ°ΠΈ ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΠΎΡ ΡΠ΅Π± ΡΡΡΠ²ΡΡ nginx ΠΈ PHP-FPM ΡΡΡΠ²ΡΡ. ΠΡΡΠ²ΠΈΡΡ ΠΎΠ±ΡΠ»ΡΠΆΠ²Π° ΡΡΠ°ΡΠΈΡΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ ΠΏΡΠ΅Π½Π°ΡΠΎΡΠ²Π° ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ Π·Π°ΡΠ²ΠΊΠΈ ΠΊΡΠΌ PHP-FPM, ΠΊΠΎΠΉΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° PHP ΠΊΠΎΠ΄. ΠΠΎΠΆΠ΅ Π±ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ½Π°ΡΠ° ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΠΎΡ Apache ΠΈ mod_php. ΠΠΎ Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-ΡΠ°Π·Π»ΠΈΡΠ½ΠΎ, ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΡΠ΅ ΡΠ° ΡΡΡΠΈΡΠ΅.
ΠΠ΅ΠΊΠ° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΊΠ°ΠΊ PHP-FPM ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΠΊΠΎΠ΄Π° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ. ΠΠΎΠ³Π°ΡΠΎ ΠΏΠΎΡΡΡΠΏΠΈ Π·Π°ΡΠ²ΠΊΠ°, PHP-FPM ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ° Π΄ΡΡΠ΅ΡΠ΅Π½ PHP ΠΏΡΠΎΡΠ΅Ρ ΠΈ ΠΏΡΠ΅Π΄Π°Π²Π° Π΄Π΅ΡΠ°ΠΉΠ»ΠΈΡΠ΅ Π½Π° Π·Π°ΡΠ²ΠΊΠ°ΡΠ° ΠΊΠ°ΡΠΎ ΡΠ°ΡΡ ΠΎΡ Π½Π΅Π³ΠΎΠ²ΠΎΡΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ (_GET, _POST, _SERVER ΠΈ Ρ.Π½.).
Π‘ΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Ρ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° PHP ΡΠΊΡΠΈΠΏΡΠ°, Π·Π°ΡΠΎΠ²Π° Π½ΠΎΠ² Π½Π°Π±ΠΎΡ ΠΎΡ Π²Ρ ΠΎΠ΄Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈ ΡΠ°ΠΌΠΎ ΠΏΠΎ Π΅Π΄ΠΈΠ½ Π½Π°ΡΠΈΠ½: ΠΊΠ°ΡΠΎ ΡΠ΅ ΠΈΠ·ΡΠΈΡΡΠΈ ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° ΠΈ ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ° ΠΎΡΠ½ΠΎΠ²ΠΎ.
Π’Π°Π·ΠΈ ΠΌΠΎΠ΄Π΅Π» Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π°. ΠΠ΅ Π΅ Π½ΡΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ ΡΡΠ΅Π²ΠΎΠΆΠΈΡΠ΅ ΠΏΡΠ΅ΠΊΠ°Π»Π΅Π½ΠΎ Π·Π° ΠΊΠΎΠ½ΡΡΠΌΠ°ΡΠΈΡΡΠ° Π½Π° ΠΏΠ°ΠΌΠ΅Ρ, Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ ΡΠ° Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ΠΈ ΠΈ Π°ΠΊΠΎ Π΅Π΄ΠΈΠ½ ΠΎΡ ΡΡΡ "ΡΠΌΡΠ΅", ΡΠΎΠΉ ΡΠ΅ Π±ΡΠ΄Π΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²Π΅Π½ ΠΈ ΡΠΎΠ²Π° Π½ΡΠΌΠ° Π΄Π° Π·Π°ΡΠ΅Π³Π½Π΅ ΠΎΡΡΠ°Π½Π°Π»ΠΈΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΠΈ. ΠΠΎ ΠΈΠΌΠ° ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΏΡΠΎΡΠ²ΡΠ²Π°Ρ ΠΏΡΠΈ ΠΎΠΏΠΈΡ Π·Π° ΡΠΊΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ.
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΡΡΠΈ ΠΈ Π½Π΅Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡ Π½Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½Π°ΡΠ° PHP ΡΡΠ΅Π΄Π°
ΠΠΊΠΎ ΡΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΠΈΠΎΠ½Π°Π»Π΅Π½ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π° PHP, Π·Π½Π°Π΅ΡΠ΅ ΠΎΡΠΊΡΠ΄Π΅ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅ Π½ΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡ β Ρ ΠΈΠ·Π±ΠΎΡΠ° Π½Π° ΡΡΠ΅ΠΉΠΌμν¬. Π’ΠΎΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ORM-ΠΈ, ΠΏΡΠ΅Π²ΠΎΠ΄ΠΈ ΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΈ. Π, ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅, ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄ΠΎΠ±Π½ΠΎ Π΄Π° ΠΏΠΎΡΡΠ°Π²ΠΈΡΠ΅ Π²ΡΠΈΡΠΊΠΈ Π²Ρ ΠΎΠ΄Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ Π² Π΅Π΄ΠΈΠ½ ΠΎΠ±Π΅ΠΊΡ (Symfony/HttpFoundation ΠΈΠ»ΠΈ PSR-7). Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΡΠΈΡΠ΅ ΡΠ° ΡΡΡΠ°Ρ ΠΎΡΠ½ΠΈ!
ΠΠΎ Π²ΡΠΈΡΠΊΠΎ ΠΈΠΌΠ° ΡΠ²ΠΎΡΡΠ° ΡΠ΅Π½Π°. ΠΡΠ² Π²ΡΠ΅ΠΊΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΎΡ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π΅Π½ ΠΊΠ»Π°Ρ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΏΡΠΎΡΡΠ° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠ° Π·Π°ΡΠ²ΠΊΠ° ΠΈΠ»ΠΈ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ ΠΊΡΠΌ ΠΠ ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° Π·Π°ΡΠ΅Π΄ΠΈΡΠ΅ ΠΏΠΎΠ½Π΅ Π΄Π΅ΡΠ΅ΡΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠ±ΡΠΎΠΉΠ½ΠΈ ΠΊΠ»Π°ΡΠΎΠ²Π΅ ΠΈ Π΄Π° ΠΏΠ°ΡΡΠΈΡΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ. ΠΠΎ Π½Π°ΠΉ-Π»ΠΎΡΠΎΡΠΎ Π΅, ΡΠ΅ ΡΠ»Π΅Π΄ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π²ΡΡΠΊΠ° Π·Π°Π΄Π°ΡΠ° Π΅ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΈΡΠΊΠΎ Π΄Π° Π±ΡΠ΄Π΅ Π½ΡΠ»ΠΈΡΠ°Π½ΠΎ ΠΈ Π΄Π° ΡΠ΅ Π·Π°ΠΏΠΎΡΠ½Π΅ ΠΎΡΠ½Π°ΡΠ°Π»ΠΎ: ΡΠ΅Π»ΠΈΡΡ ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡΠΎ ΡΠΎΠΊΡ-ΡΠΎ ΡΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π»ΠΈ, ΡΡΠ°Π²Π° Π±Π΅Π·ΠΏΠΎΠ»Π΅Π·Π΅Π½, Π·Π°ΡΠΎΡΠΎ Π²Π΅ΡΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΈΡΠ΅ ΠΎΡΠ΅ Π΅Π΄Π½Π° Π·Π°ΡΠ²ΠΊΠ° Ρ Π½Π΅Π³ΠΎ. ΠΠ°ΠΆΠ΅ΡΠ΅ ΡΠΎΠ²Π° Π½Π° Π²ΡΠ΅ΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΡ, ΠΊΠΎΠΉΡΠΎ ΠΏΠΈΡΠ΅ Π½Π° Π΄ΡΡΠ³ Π΅Π·ΠΈΠΊ β ΠΈ ΡΠ΅ Π²ΠΈΠ΄ΠΈΡΠ΅ Π½Π΅Π΄ΠΎΡΠΌΠ΅Π½ΠΈΠ΅ Π½Π° Π»ΠΈΡΠ΅ΡΠΎ ΠΌΡ.
PHP ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΈΡΠ΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ Π½Π°ΡΠ΅Π΄ ΡΡΡΡΠΈΡ Π° Π½Π°ΡΠΈΠ½ΠΈ Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Π΄ΠΎΠ±ΡΠ΅ ΠΎΠ±ΠΌΠΈΡΠ»Π΅Π½ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΠΈ Π·Π° βΠ»Π΅Π½ΠΈΠ²ΠΎβ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅, ΠΌΠΈΠΊΡΠΎΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ²Π΅, ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ ΠΈ Ρ.Π½. ΠΠΎ Π² ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° ΠΎΡΠ½ΠΎΠ²ΠΎ ΡΠ΅ Π½Π°Π»Π°Π³Π° Π΄Π° ΡΠ΅ Π½ΡΠ»ΠΈΡΠ° ΡΡΠ»ΠΎΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π΄Π° ΡΠ΅ Π·Π°ΠΏΠΎΡΠ½Π΅ ΠΎΡΠ½Π°ΡΠ°Π»ΠΎ, ΠΎΡΠ½ΠΎΠ²ΠΎ ΠΈ ΠΎΡΠ½ΠΎΠ²ΠΎ. (ΠΠ΅Π»Π΅ΠΆΠΊΠ° Π½Π° ΠΏΡΠ΅Π²ΠΎΠ΄Π°ΡΠ°: ΡΠ°ΡΡΠΈΡΠ½ΠΎ ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΠ΅ Π±ΡΠ΄Π΅ ΡΠ΅ΡΠ΅Π½ Ρ ΠΏΠΎΡΠ²Π°ΡΠ° Π½Π° Π² PHP 7.4)
ΠΠΎΠΆΠ΅ Π»ΠΈ PHP Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Go Π΄Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ Π΅Π΄ΠΈΠ½ Π·Π°ΠΏΠΈΡ?
ΠΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°Ρ PHP ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ Π΄Π° ΠΆΠΈΠ²Π΅ΡΡ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΌΠΈΠ½ΡΡΠΈ (Π΄ΠΎ ΡΠ°ΡΠΎΠ²Π΅ ΠΈΠ»ΠΈ Π΄Π½ΠΈ): Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, cron Π·Π°Π΄Π°ΡΠΈ, CSV ΠΏΠ°ΡΡΠ΅ΡΠΈ, ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΡΠΈ Π½Π° ΠΎΠΏΠ°ΡΠΊΠΈ. ΠΡΠΈΡΠΊΠΈ ΡΠ΅ ΡΠ°Π±ΠΎΡΡΡ ΠΏΠΎ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΉ: ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ Π·Π°Π΄Π°ΡΠ°, ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ Ρ, ΡΠ°ΠΊΠ°Ρ ΡΠ»Π΅Π΄Π²Π°ΡΠ°ΡΠ°. ΠΠΎΠ΄ΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ° Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΡΠΏΠ΅ΡΡΡΠ²Π°ΠΉΠΊΠΈ ΡΠ΅Π½Π½ΠΈ ΠΌΠΈΠ»ΠΈΡΠ΅ΠΊΡΠ½Π΄ΠΈ, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π·Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ.
ΠΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π΄ΡΠ»Π³ΠΎΡΡΠ°ΠΉΠ½ΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ Π½Π΅ Π΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΡΠΎΡΡΠΎ. ΠΡΡΠΊΠ° Π³ΡΠ΅ΡΠΊΠ° Π½Π°ΠΏΡΠ»Π½ΠΎ ΡΠ±ΠΈΠ²Π° ΠΏΡΠΎΡΠ΅ΡΠ°, Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ΅ΡΠΊΠΈ Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π΅ ΡΠΆΠ°ΡΠ½ΠΎ Π΄ΠΎΡΠ°Π΄Π½ΠΎ, Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ ΡΡΠ΅Π· F5 Π²Π΅ΡΠ΅ Π½Π΅ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ.
Π‘ΠΈΡΡΠ°ΡΠΈΡΡΠ° ΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈ Ρ ΠΈΠ·Π»ΠΈΠ·Π°Π½Π΅ΡΠΎ Π½Π° PHP 7: ΠΏΠΎΡΠ²ΠΈ ΡΠ΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ ΡΠ±ΠΎΡΡΠΈΠΊ Π½Π° ΠΎΡΠΏΠ°Π΄ΡΡΠΈ, ΡΡΠ°Π½Π° ΠΏΠΎ-Π»Π΅ΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°Ρ Π³ΡΠ΅ΡΠΊΠΈ, Π° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡΡΠ° Π½Π° ΡΠ΄ΡΠΎΡΠΎ ΡΠ΅Π³Π° ΡΠ° Π·Π°ΡΠΈΡΠ΅Π½ΠΈ ΠΎΡ ΡΡΠ΅ΡΠΊΠΈ. ΠΡΠ΅ ΠΏΠ°ΠΊ, ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΈΡΠ΅ Π²ΡΠ΅ ΠΎΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° Π²Π½ΠΈΠΌΠ°Π²Π°Ρ Ρ ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΈ Π΄Π° ΠΏΠΎΠΌΠ½ΡΡ Π·Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ Ρ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π² ΠΊΠΎΠ΄Π° (ΠΈΠΌΠ° Π»ΠΈ Π΅Π·ΠΈΠΊ, Π² ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ³Π½ΠΎΡΠΈΡΠ° ΡΠΎΠ²Π°?). Π Π²ΡΠ΅ ΠΏΠ°ΠΊ Π² PHP 7 Π½ΠΈ Π΄Π΅Π±Π½Π°Ρ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Π½Π΅ΠΎΡΠ°ΠΊΠ²Π°Π½ΠΈ ΠΈΠ·Π½Π΅Π½Π°Π΄ΠΈ.
ΠΠΎΠΆΠ΅ Π»ΠΈ Π΄Π° ΡΠ΅ Π²Π·Π΅ΠΌΠ΅ ΠΌΠΎΠ΄Π΅Π»ΡΡ Π½Π° ΡΠ°Π±ΠΎΡΠ° Ρ Π΄ΡΠ»Π³ΠΎΡΡΠ°ΠΉΠ½ΠΈ PHP ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅, Π΄Π° ΡΠ΅ Π°Π΄Π°ΠΏΡΠΈΡΠ° ΠΊΡΠΌ ΠΏΠΎ-ΡΡΠΈΠ²ΠΈΠ°Π»Π½ΠΈ Π·Π°Π΄Π°ΡΠΈ ΠΊΠ°ΡΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° HTTP Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ Π΄Π° ΡΠ΅ ΠΈΠ·Π±Π΅Π³Π½Π΅ Π½ΡΠΆΠ΄Π°ΡΠ° ΠΎΡ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π²ΡΠΈΡΠΊΠΎ ΠΎΡ Π½ΡΠ»Π° ΠΏΡΠΈ Π²ΡΡΠΊΠΎ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅?
ΠΠ° Π΄Π° ΡΠ΅ ΡΠ΅ΡΠΈ ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΏΡΡΠ²ΠΎ Π±Π΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ° ΡΡΡΠ²ΡΡΠ½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠΏΠΎΡΠΎΠ±Π½ΠΎ Π΄Π° ΠΏΡΠΈΠ΅ΠΌΠ° HTTP Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡ ΠΈ Π΄Π° Π³ΠΈ ΠΏΡΠ΅Π½Π°ΡΠΎΡΠ²Π° Π΅Π΄Π½ΠΎ ΡΠ»Π΅Π΄ Π΄ΡΡΠ³ΠΎ Π½Π° PHP ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊΠ°, Π±Π΅Π· Π΄Π° Π³ΠΎ ΡΠ±ΠΈΠ²Π° Π²ΡΠ΅ΠΊΠΈ ΠΏΡΡ.
ΠΠ½Π°Π΅Ρ ΠΌΠ΅, ΡΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΡΠ΅Π± ΡΡΡΠ²ΡΡ Π½Π° ΡΠΈΡΡ PHP (PHP-PM) ΠΈΠ»ΠΈ Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° C-ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ (Swoole). Π ΠΌΠ°ΠΊΠ°Ρ ΠΈ Π΄Π²Π°ΡΠ° ΠΌΠ΅ΡΠΎΠ΄Π° Π΄Π° ΠΈΠΌΠ°Ρ ΡΠ²ΠΎΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π°, Π½Π΅ Π±ΡΡ ΠΌΠ΅ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠ΅Π½ΠΈ β ΠΈΡΠΊΠ°Ρ ΠΌΠ΅ Π½Π΅ΡΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅. ΠΡΠΆΠ΅Π½ Π½ΠΈ Π±Π΅ΡΠ΅ Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΡΠ΅Π± ΡΡΡΠ²ΡΡ β ΠΏΠ»Π°Π½ΠΈΡΠ°Ρ ΠΌΠ΅ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅ΡΠΎ Π΄Π° Π½ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈ ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ "ΡΠ΅ΠΆΠΊΠΈΡ ΡΡΠ°ΡΡ" Π² PHP, ΠΈ ΠΊΠΎΠ΅ΡΠΎ Π΄Π° ΠΌΠΎΠΆΠ΅ Π»Π΅ΡΠ½ΠΎ Π΄Π° ΡΠ΅ Π°Π΄Π°ΠΏΡΠΈΡΠ° ΠΈ ΡΠ°Π·ΡΠΈΡΡΠ²Π° Π·Π° ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π’ΠΎΠ΅ΡΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ Π½ΠΈ Π±Π΅ΡΠ΅ ΡΡΡΠ²ΡΡ Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠΎΠΆΠ΅ Π»ΠΈ Go Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π² ΡΠΎΠ²Π°? ΠΠ½Π°Π΅Ρ ΠΌΠ΅, ΡΠ΅ ΠΌΠΎΠΆΠ΅, Π·Π°ΡΠΎΡΠΎ ΡΠΎΠ·ΠΈ Π΅Π·ΠΈΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»Π½ΠΈ Π±ΠΈΠ½Π°ΡΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅; ΡΠΎΠΉ Π΅ ΠΊΡΠΎΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½; ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½Π°, ΠΌΠ½ΠΎΠ³ΠΎ Π΅Π»Π΅Π³Π°Π½ΡΠ½Π°, ΠΌΠΎΠ΄Π΅Π» Π½Π° ΠΏΠ°ΡΠ°Π»Π΅Π»Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° (concurrency) ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ HTTP; ΠΈ Π½Π°ΠΊΡΠ°Ρ, ΡΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Ρ ΠΈΠ»ΡΠ΄ΠΈ open-source Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ.
Π’ΡΡΠ΄Π½ΠΎΡΡΠΈ ΠΏΡΠΈ ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π΄Π²Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ½ΠΈ Π΅Π·ΠΈΠΊΠ°
ΠΡΡΠ²ΠΎ ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ ΠΊΠ°ΠΊ Π΄Π²Π΅ ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ΅ ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠΈΡΠ°Ρ ΠΏΠΎΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ΅Π· Π½Π° ΠΠ»Π΅ΠΊΡ ΠΠ°Π»Π°Π΅ΡΡΡΠ°Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ° ΡΠΏΠΎΠ΄Π΅Π»ΡΠ½Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ PHP ΠΈ Go (ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° mod_php Π² Apache). ΠΠΎ ΡΠ°Π·ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΈΠΌΠ° ΠΎΡΠΎΠ±Π΅Π½ΠΎΡΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π°Ρ ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ΡΠΎ ΠΉ Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° Π½Π°ΡΠ°ΡΠ° Π·Π°Π΄Π°ΡΠ°.
Π Π΅ΡΠΈΡ ΠΌΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π΄ΡΡΠ³, ΠΏΠΎ-ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ ΠΏΠΎΠ΄Ρ ΠΎΠ΄: ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ ΡΡΠ΅Π· ΡΠΎΠΊΠ΅ΡΠΈ/ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠΈ. Π’ΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π΅ Π΄ΠΎΠΊΠ°Π·Π°Π» Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎΡΡΡΠ° ΡΠΈ ΠΏΡΠ΅Π· ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π΄Π΅ΡΠ΅ΡΠΈΠ»Π΅ΡΠΈΡ ΠΈ Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ Π½Π° Π½ΠΈΠ²ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°.
ΠΠ° Π½Π°ΡΠ°Π»ΠΎ ΡΡΠ·Π΄Π°Π΄ΠΎΡ ΠΌΠ΅ ΠΏΡΠΎΡΡ Π±ΠΈΠ½Π°ΡΠ΅Π½ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Π·Π° ΠΎΠ±ΠΌΠ΅Π½ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅. Π Π½Π°ΠΉ-ΠΏΡΠΎΡΡΠ°ΡΠ° ΡΠΈ ΡΠΎΡΠΌΠ°, ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΊΠ°ΡΠΎ Ρ (Π² Π½Π°ΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉ 17 Π±Π°ΠΉΡΠ°), ΠΊΠΎΠΉΡΠΎ ΡΡΠ΄ΡΡΠΆΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΡΠΈΠΏΠ° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠ°, Π½Π΅Π³ΠΎΠ²ΠΈΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΈ Π΄Π²ΠΎΠΈΡΠ½Π° ΠΌΠ°ΡΠΊΠ° Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠ΅Π»ΠΎΡΡΡΠ° Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅.
ΠΡ ΡΡΡΠ°Π½Π° Π½Π° PHP ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΌΠ΅ , Π° ΠΎΡ ΡΡΡΠ°Π½Π° Π½Π° Go β Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°.
ΠΠ΅ Π½ΠΈ ΡΡΠΈΠ³Π½Π° Π΅Π΄ΠΈΠ½ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» β Π΄ΠΎΠ±Π°Π²ΠΈΡ ΠΌΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π΄Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°ΠΌΠ΅. ΠΠΎ-ΠΊΡΡΠ½ΠΎ ΡΠΎΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ Π½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π° Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ°, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΌΠ΅ Π»Π΅ΡΠ½ΠΎ Π΄Π° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°ΠΌΠ΅ Go Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π² PHP ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π Π΅Π·ΡΠ»ΡΠ°ΡΡΡ ΠΎΡ ΡΠ°Π·ΠΈ ΡΠ°Π±ΠΎΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π²ΠΈΠ΄ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Π΄ΡΡΠ³ Π½Π°Ρ open-source ΠΏΡΠΎΠ΄ΡΠΊΡ.
Π Π°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ PHP ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊΠ°
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Ρ ΠΌΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Π·Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, Π·Π°ΠΏΠΎΡΠ½Π°Ρ ΠΌΠ΅ Π΄Π° ΠΌΠΈΡΠ»ΠΈΠΌ ΠΊΠ°ΠΊ Π΄Π° ΠΏΡΠ΅Π΄Π°Π²Π°ΠΌΠ΅ Π·Π°Π΄Π°ΡΠΈΡΠ΅ Π½Π° PHP ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ ΠΏΠΎ-Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ. ΠΠΎΠ³Π°ΡΠΎ ΠΏΠΎΡΡΡΠΏΠΈ Π·Π°Π΄Π°ΡΠ°, ΠΏΡΠΈΠ»ΠΎΠΆΠ½ΠΈΡΡ ΡΡΡΠ²ΡΡ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ ΡΠ²ΠΎΠ±ΠΎΠ΄Π΅Π½ ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊ Π·Π° Π½Π΅ΠΉΠ½ΠΎΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅. ΠΠΊΠΎ ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊΡΡ/ΠΏΡΠΎΡΠ΅ΡΡΡ Π·Π°Π²ΡΡΡΠΈ Ρ Π³ΡΠ΅ΡΠΊΠ° ΠΈΠ»ΠΈ "ΡΠΌΡΠ΅", ΡΠ΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°ΠΌΠ΅ ΠΎΡ Π½Π΅Π³ΠΎ ΠΈ ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ Π½ΠΎΠ² Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅Π³ΠΎ. Π Π°ΠΊΠΎ ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊΡΡ/ΠΏΡΠΎΡΠ΅ΡΡΡ Π΅ Π·Π°Π²ΡΡΡΠΈΠ» ΡΡΠΏΠ΅ΡΠ½ΠΎ, Π³ΠΎ Π²ΡΡΡΠ°ΠΌΠ΅ Π² ΠΏΡΠ»Π° ΡΠ°Π±ΠΎΡΠ½ΠΈΡΠΈ, Π½Π°Π»ΠΈΡΠ½ΠΈ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π·Π°Π΄Π°ΡΠΈ.

ΠΠ° ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠ»Π° ΠΎΡ Π°ΠΊΡΠΈΠ²Π½ΠΈ ΡΠ°Π±ΠΎΡΠ½ΠΈΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ
ΠΌΠ΅, Π·Π° Π΄Π° ΡΠ΅ ΠΎΡΡΡΡΠ°Π½ΡΡ Π½Π΅ΠΎΡΠ°ΠΊΠ²Π°Π½ΠΎ "ΡΠΌΡΠ΅Π»ΠΈΡΠ΅" ΡΠ°Π±ΠΎΡΠ½ΠΈΡΠΈ, Π΄ΠΎΠ±Π°Π²ΠΈΡ
ΠΌΠ΅ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΡΠΌ Π·Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΈ ΡΡΡΡΠΎΡΠ½ΠΈΡ Π½Π° ΡΠ°Π±ΠΎΡΠ½ΠΈΡΠΈΡΠ΅.
Π ΡΠ΅Π·ΡΠ»ΡΠ°Ρ ΠΏΠΎΠ»ΡΡΠΈΡ ΠΌΠ΅ ΡΠ°Π±ΠΎΡΠ΅Ρ PHP ΡΡΡΠ²ΡΡ, ΡΠΏΠΎΡΠΎΠ±Π΅Π½ Π΄Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ Π·Π°ΡΠ²ΠΊΠΈ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ΠΈ Π² Π±ΠΈΠ½Π°ΡΠ½Π° ΡΠΎΡΠΌΠ°.
ΠΠ° Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½ΠΈ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΠΊΠ°ΡΠΎ ΡΠ΅Π± ΡΡΡΠ²ΡΡ, ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΠΌ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ PHP ΡΡΠ°Π½Π΄Π°ΡΡ Π·Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ Π²Ρ ΠΎΠ΄ΡΡΠΈ HTTP Π·Π°ΡΠ²ΠΊΠΈ. Π Π½Π°ΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉ ΠΏΡΠΎΡΡΠΎ net/http-Π·Π°ΡΠ²ΠΊΠ° ΠΎΡ Go Π² ΡΠΎΡΠΌΠ°Ρ, Π·Π° Π΄Π° Π±ΡΠ΄Π΅ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ Π½Π°Π»ΠΈΡΠ½ΠΈ Π΄Π½Π΅Ρ PHP ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ²Π΅.
Π’ΡΠΉ ΠΊΠ°ΡΠΎ PSR-7 ΡΠ΅ ΡΡΠΈΡΠ° Π·Π° Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌ (Π½ΡΠΊΠΎΠΉ ΡΠ΅ ΠΊΠ°ΠΆΠ΅, ΡΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ Π΅), ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΠΈΡΠ°Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π½Π΅ ΡΠ΅ ΠΎΡΠ½Π°ΡΡΡ ΠΊΡΠΌ Π·Π°ΡΠ²ΠΊΠ°ΡΠ° ΠΊΠ°ΡΠΎ ΠΊΡΠΌ Π³Π»ΠΎΠ±Π°Π»Π΅Π½ ΠΎΠ±Π΅ΠΊΡ. Π’ΠΎΠ²Π° ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ ΡΠ΅ ΡΡΡΠ΅ΡΠ°Π²Π° Ρ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΡΠ° Π·Π° Π΄ΡΠ»Π³ΠΎΠΆΠΈΠ²Π΅Π΅ΡΠΈ PHP ΠΏΡΠΎΡΠ΅ΡΠΈ. ΠΠ°ΡΠ°ΡΠ° ΠΊΡΠ°ΠΉΠ½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ, ΠΊΠΎΡΡΠΎ Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ»Π° ΠΈΠΌΠ΅, ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°ΡΠ΅ ΡΠ°ΠΊΠ°:

ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΠΌΠ΅ RoadRunner β
ΠΠ°ΡΠ°ΡΠ° ΠΏΡΡΠ²Π° ΡΠ΅ΡΡΠΎΠ²Π° Π·Π°Π΄Π°ΡΠ° Π±Π΅ΡΠ΅ API Π±Π΅ΠΊΠ΅Π½Π΄, ΠΏΡΠΈ ΠΊΠΎΠΉΡΠΎ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ½ΠΎ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎ Π²ΡΠ·Π½ΠΈΠΊΠ²Π°Ρ Π° ΠΈΠ·Π±ΡΡ Π²Π°Π½ΠΈΡ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ (ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-ΡΠ΅ΡΡΠΎ ΠΎΡ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ). ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ Π² ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΠ»ΡΡΠ°ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° nginx Π±ΡΡ Π° Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΈ, ΡΠ΅Π΄ΠΎΠ²Π½ΠΎ ΡΠ΅ ΡΠ±Π»ΡΡΠΊΠ²Π°Ρ ΠΌΠ΅ Ρ Π³ΡΠ΅ΡΠΊΠ° 502, Π·Π°ΡΠΎΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΌΠ΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π±ΡΡΠ·ΠΎ Π΄Π° Π±Π°Π»Π°Π½ΡΠΈΡΠ°ΠΌΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΏΠΎΠ΄ ΠΎΡΠ°ΠΊΠ²Π°Π½ΠΎΡΠΎ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ.
ΠΠ° Π·Π°ΠΌΡΠ½Π° Π½Π° ΡΠΎΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π² Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° 2018 Π³ΠΎΠ΄ΠΈΠ½Π° ΡΠ°Π·ΡΠΈΡΠΈΡ ΠΌΠ΅ Π½Π°ΡΠΈΡ ΠΏΡΡΠ²ΠΈ PHP/Go ΡΡΡΠ²ΡΡ Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π Π²Π΅Π΄Π½Π°Π³Π° ΠΏΠΎΠ»ΡΡΠΈΡ ΠΌΠ΅ Π½Π΅Π²Π΅ΡΠΎΡΡΠ΅Π½ Π΅ΡΠ΅ΠΊΡ! ΠΠ΅ ΡΠ°ΠΌΠΎ ΡΠ΅ Π½Π°ΠΏΡΠ»Π½ΠΎ ΡΠ΅ ΠΈΠ·Π±Π°Π²ΠΈΡ ΠΌΠ΅ ΠΎΡ Π³ΡΠ΅ΡΠΊΠ° 502, Π½ΠΎ ΠΈ ΡΡΠΏΡΡ ΠΌΠ΅ Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈΠΌ Π±ΡΠΎΡ Π½Π° ΡΡΡΠ²ΡΡΠΈΡΠ΅ Ρ Π΄Π²Π΅ ΡΡΠ΅ΡΠΈ, ΡΠΏΠ΅ΡΡΡΠ²Π°ΠΉΠΊΠΈ ΠΊΡΠΏ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΈ Ρ Π°ΠΏΡΠ΅ΡΠ° Π·Π° Π³Π»Π°Π²ΠΎΠ±ΠΎΠ»ΠΈΠ΅ Π·Π° ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΈΡΠ΅ ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡΠΈΡΠ΅.
Π ΡΡΠ΅Π΄Π°ΡΠ° Π½Π° Π³ΠΎΠ΄ΠΈΠ½Π°ΡΠ° ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈΡ ΠΌΠ΅ Π½Π°ΡΠ΅ΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Ρ ΠΌΠ΅ Π³ΠΎ Π² GitHub ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ MIT ΠΈ Π³ΠΎ Π½Π°ΡΠ΅ΠΊΠΎΡ ΠΌΠ΅ , ΠΏΠΎΠ΄ΡΠ΅ΡΡΠ°Π²Π°ΠΉΠΊΠΈ ΠΏΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ Π½Π΅Π³ΠΎΠ²Π°ΡΠ° Π½Π΅Π²Π΅ΡΠΎΡΡΠ½Π° ΡΠΊΠΎΡΠΎΡΡ ΠΈ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡ.
ΠΠ°ΠΊ RoadRunner ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈ Π²Π°ΡΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Ρ ΡΡΠ΅ΠΊ
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Middleware net/http ΠΎΡ ΡΡΡΠ°Π½Π° Π½Π° Go, Π·Π° Π΄Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΠΌΠ΅ JWT-Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΎΡΠ΅ ΠΏΡΠ΅Π΄ΠΈ Π·Π°ΡΠ²ΠΊΠ°ΡΠ° Π΄Π° Π΄ΠΎΡΡΠΈΠ³Π½Π΅ Π΄ΠΎ PHP, Π° ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π΄Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΠΌΠ΅ WebSockets ΠΈ Π³Π»ΠΎΠ±Π°Π»Π½ΠΎ Π΄Π° Π°Π³ΡΠ΅Π³Π°ΡΠΈΠΌ ΡΡΡΡΠΎΡΠ½ΠΈΡ Π² Prometheus.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π²Π³ΡΠ°Π΄Π΅Π½ΠΎΡΠΎ 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 ΠΈ ΡΡΠ°Π²ΡΠΎΡΠ° Π½Π° ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½Π°ΡΠ° ΡΡΠ°ΡΠΈΡ β
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
