
ΠΠ΄ΡΠ°Π²Π΅ΠΉΡΠ΅, Π₯Π°Π±Ρ! ΠΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°Π±ΠΎΡΠΈΠΌ Π² 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-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) ΠΈΠ»ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Π‘-ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ (Swoole). Π Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ Π²ΡΠ΅ΠΊΠΈ ΠΎΡ ΡΠ΅Π·ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ ΠΈΠΌΠ° ΡΠ²ΠΎΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π°, Π½ΠΈΡΠΎ Π΅Π΄ΠΈΠ½ ΠΎΡ ΡΡΡ Π½Π΅ Π½ΠΈ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΠ²Π°ΡΠ΅ β ΠΈΡΠΊΠ°Ρ ΠΌΠ΅ Π½Π΅ΡΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅. ΠΡΠΆΠ΄Π°Π΅Ρ ΠΌΠ΅ ΡΠ΅ Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΠΎΡ ΡΠ΅Π± ΡΡΡΠ²ΡΡ β ΠΈΡΠΊΠ°Ρ ΠΌΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΡΠΏΠΎΡΠΎΠ±Π½ΠΎ Π΄Π° Π½ΠΈ ΠΈΠ·Π±Π°Π²ΠΈ ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ "ΡΠ΅ΠΆΠΊΠΈΡ ΡΡΠ°ΡΡ" Π² PHP, ΠΊΠΎΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π»Π΅ΡΠ½ΠΎ Π°Π΄Π°ΠΏΡΠΈΡΠ°Π½ΠΎ ΠΈ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΎ ΡΠΏΡΡΠΌΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π’ΠΎΠ΅ΡΡ, Π½ΡΠΆΠ΄Π°Π΅Ρ ΠΌΠ΅ ΡΠ΅ ΠΎΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅-ΡΡΡΠ²ΡΡ.
ΠΠΎΠΆΠ΅ Π»ΠΈ Go Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π² ΡΠΎΠ²Π°? ΠΠ½Π°Π΅Ρ ΠΌΠ΅, ΡΠ΅ ΠΌΠΎΠΆΠ΅, Π·Π°ΡΠΎΡΠΎ ΡΠΎΠ·ΠΈ Π΅Π·ΠΈΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»Π½ΠΈ Π±ΠΈΠ½Π°ΡΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅; ΡΠΎΠΉ Π΅ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½; ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½Π°, ΠΌΠ½ΠΎΠ³ΠΎ Π΅Π»Π΅Π³Π°Π½ΡΠ½Π°, ΠΌΠΎΠ΄Π΅Π» Π½Π° ΠΏΠ°ΡΠ°Π»Π΅Π»Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° (concurrency) ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ HTTP; ΠΈ Π½Π°ΠΊΡΠ°Ρ, ΡΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ Π½Π° ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΈΠ»ΡΠ΄ΠΈ open-source Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ.
Π’ΡΡΠ΄Π½ΠΎΡΡΠΈΡΠ΅ ΠΏΡΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π΄Π²Π° Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅
ΠΠ° ΠΏΡΡΠ²ΠΎ ΠΌΡΡΡΠΎ, ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ ΠΊΠ°ΠΊ Π΄Π²Π΅ ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ΅ ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠΈΡΠ°Ρ ΠΏΠΎΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Π½Π° ΠΠ»Π΅ΠΊΡ ΠΠ°Π»Π΅ΡΡΡaΡ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ° ΡΠΏΠΎΠ΄Π΅Π»ΡΠ½Π΅ΡΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ 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
