RoadRunner: PHP Π½Π΅ Π΅ създадСн, Π·Π° Π΄Π° ΡƒΠΌΡ€Π΅, ΠΈΠ»ΠΈ Golang Π½Π° ΠΏΠΎΠΌΠΎΡ‰

RoadRunner: PHP Π½Π΅ Π΅ създадСн, Π·Π° Π΄Π° ΡƒΠΌΡ€Π΅, ΠΈΠ»ΠΈ Golang Π½Π° ΠΏΠΎΠΌΠΎΡ‰

Π₯Π΅ΠΉ Π₯Π°Π±Ρ€! Активни смС Π² Badoo Ρ€Π°Π±ΠΎΡ‚Π° Π²ΡŠΡ€Ρ…Ρƒ производитСлността Π½Π° PHP, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ ΠΈΠΌΠ°ΠΌΠ΅ доста голяма систСма Π½Π° Ρ‚ΠΎΠ·ΠΈ Π΅Π·ΠΈΠΊ ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ с производитСлността Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π·Π° спСстяванС Π½Π° ΠΏΠ°Ρ€ΠΈ. ΠŸΡ€Π΅Π΄ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ дСсСт Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΡΡŠΠ·Π΄Π°Π΄ΠΎΡ…ΠΌΠ΅ PHP-FPM Π·Π° Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ бСшС Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ ΠΏΠ°Ρ‡ΠΎΠ²Π΅ Π·Π° PHP, Π° ΠΏΠΎ-късно Π²Π»Π΅Π·Π΅ Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»Π½ΠΎΡ‚ΠΎ разпространСниС.

ΠŸΡ€Π΅Π· послСднитС Π³ΠΎΠ΄ΠΈΠ½ΠΈ PHP постигна голям Π½Π°ΠΏΡ€Π΅Π΄ΡŠΠΊ: ΡΡŠΠ±ΠΈΡ€Π°Ρ‡ΡŠΡ‚ Π½Π° Π±ΠΎΠΊΠ»ΡƒΠΊ сС ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΈ, Π½ΠΈΠ²ΠΎΡ‚ΠΎ Π½Π° стабилност сС повиши - днСс ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π΄Π΅ΠΌΠΎΠ½ΠΈ ΠΈ Π΄ΡŠΠ»Π³ΠΎΡ‚Ρ€Π°ΠΉΠ½ΠΈ скриптовС Π² PHP Π±Π΅Π· Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ. Π’ΠΎΠ²Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π½Π° Spiral Scout Π΄Π° ΠΎΡ‚ΠΈΠ΄Π΅ ΠΏΠΎ-Π΄Π°Π»Π΅Ρ‡: RoadRunner, Π·Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΡ‚ PHP-FPM, Π½Π΅ почиства ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° ΠΌΠ΅ΠΆΠ΄Ρƒ заявкитС, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΄Π°Π²Π° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° производитСлността (Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ Ρ‚ΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ услоТнява процСса Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°). Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° СкспСримСнтирамС с Ρ‚ΠΎΠ·ΠΈ инструмСнт, Π½ΠΎ всС ΠΎΡ‰Π΅ нямамС Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π΄Π° сподСлим. Π—Π° Π΄Π° бъдС Ρ‡Π°ΠΊΠ°Π½Π΅Ρ‚ΠΎ ΠΈΠΌ ΠΏΠΎ-Π·Π°Π±Π°Π²Π½ΠΎ, ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°ΠΌΠ΅ ΠΏΡ€Π΅Π²ΠΎΠ΄Π° Π½Π° анонса Π½Π° RoadRunner ΠΎΡ‚ Spiral Scout.

ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ΡŠΡ‚ ΠΎΡ‚ статията Π΅ близък Π΄ΠΎ нас: ΠΊΠΎΠ³Π°Ρ‚ΠΎ Ρ€Π΅ΡˆΠ°Π²Π°ΠΌΠ΅ Π½Π°ΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, Π½ΠΈΠ΅ ΡΡŠΡ‰ΠΎ Π½Π°ΠΉ-чСсто ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΊΡƒΠΏ PHP ΠΈ Go, ΠΊΠ°Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ прСдимствата Π½Π° Π΄Π²Π°Ρ‚Π° Π΅Π·ΠΈΠΊΠ° ΠΈ Π½Π΅ изоставямС Сдиния Π² ΠΏΠΎΠ»Π·Π° Π½Π° другия.

Π”Π° Π²ΠΈ Π΅ сладко!

ΠŸΡ€Π΅Π· послСднитС дСсСт Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΡΡŠΠ·Π΄Π°Π΄ΠΎΡ…ΠΌΠ΅ прилоТСния Π·Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΎΡ‚ списъка Fortune 500ΠΈ Π·Π° Ρ„ΠΈΡ€ΠΌΠΈ с аудитория ΠΎΡ‚ Π½Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ 500 ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ. ΠŸΡ€Π΅Π· цялото Ρ‚ΠΎΠ²Π° Π²Ρ€Π΅ΠΌΠ΅ Π½Π°ΡˆΠΈΡ‚Π΅ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‚ Π±Π΅ΠΊΠ΅Π½Π΄Π° основно Π½Π° PHP. Но ΠΏΡ€Π΅Π΄ΠΈ Π΄Π²Π΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ Π½Π΅Ρ‰ΠΎ ΠΎΠΊΠ°Π·Π° голямо влияниС Π½Π΅ само Π²ΡŠΡ€Ρ…Ρƒ производитСлността Π½Π° Π½Π°ΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈ, Π½ΠΎ ΠΈ Π²ΡŠΡ€Ρ…Ρƒ тяхната мащабируСмост - Π²ΡŠΠ²Π΅Π΄ΠΎΡ…ΠΌΠ΅ Golang (Go) Π² нашия Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡ‡Π΅Π½ стСк.

ΠŸΠΎΡ‡Ρ‚ΠΈ Π²Π΅Π΄Π½Π°Π³Π° ΠΎΡ‚ΠΊΡ€ΠΈΡ…ΠΌΠ΅, Ρ‡Π΅ Go Π½ΠΈ позволява Π΄Π° създавамС ΠΏΠΎ-Π³ΠΎΠ»Π΅ΠΌΠΈ прилоТСния с Π΄ΠΎ 40 ΠΏΡŠΡ‚ΠΈ подобрСния Π½Π° производитСлността. Π‘ Π½Π΅Π³ΠΎ успяхмС Π΄Π° Ρ€Π°Π·ΡˆΠΈΡ€ΠΈΠΌ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈ, написани Π½Π° 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 ΠΈ Ρ‚.Π½.).

Π‘ΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° 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 Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π΅ с Ρ‚ΠΎΠ²Π°? Π—Π½Π°Π΅Ρ…ΠΌΠ΅, Ρ‡Π΅ ΠΌΠΎΠΆΠ΅, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π΅Π·ΠΈΠΊΡŠΡ‚ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π° прилоТСния Π² Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½ΠΈ Π΄Π²ΠΎΠΈΡ‡Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅; тя Π΅ ΠΌΠ΅ΠΆΠ΄ΡƒΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π°; ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° собствСн, ΠΌΠ½ΠΎΠ³ΠΎ Π΅Π»Π΅Π³Π°Π½Ρ‚Π΅Π½, ΠΌΠΎΠ΄Π΅Π» Π½Π° ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° (конкурСнтност) ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с HTTP; ΠΈ накрая, хиляди Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ Π·Π° нас.

ВрудноститС ΠΏΡ€ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π΄Π²Π° Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅

На ΠΏΡŠΡ€Π²ΠΎ място, бСшС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° сС ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈ ΠΊΠ°ΠΊ Π΄Π²Π΅ ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅ прилоТСния Ρ‰Π΅ ΠΊΠΎΠΌΡƒΠ½ΠΈΠΊΠΈΡ€Π°Ρ‚ ΠΏΠΎΠΌΠ΅ΠΆΠ΄Ρƒ си.

НапримСр ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° АлСкс ΠŸΠ°Π»Π΅ΡΡ‚Ρ€Π°Ρ, бСшС възмоТно Π΄Π° сС сподСля ΠΏΠ°ΠΌΠ΅Ρ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ PHP ΠΈ Go процСси (ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° mod_php Π² Apache). Но Ρ‚Π°Π·ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΈΠΌΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π°Π²Π°Ρ‚ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ ΠΉ Π·Π° Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅ Π½Π° нашия ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

Π Π΅ΡˆΠΈΡ…ΠΌΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π΅Π½, ΠΏΠΎ-чСсто срСщан ΠΏΠΎΠ΄Ρ…ΠΎΠ΄: Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌ взаимодСйствиС ΠΌΠ΅ΠΆΠ΄Ρƒ процСситС Ρ‡Ρ€Π΅Π· сокСти / Ρ‚Ρ€ΡŠΠ±ΠΎΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈ. Π’ΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ сС Π΄ΠΎΠΊΠ°Π·Π° ΠΊΠ°Ρ‚ΠΎ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ ΠΏΡ€Π΅Π· послСднитС дСсСтилСтия ΠΈ Π΅ Π΄ΠΎΠ±Ρ€Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½ Π½Π° Π½ΠΈΠ²ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π° систСма.

ΠšΠ°Ρ‚ΠΎ Π½Π°Ρ‡Π°Π»ΠΎ ΡΡŠΠ·Π΄Π°Π΄ΠΎΡ…ΠΌΠ΅ прост Π΄Π²ΠΎΠΈΡ‡Π΅Π½ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Π·Π° ΠΎΠ±ΠΌΠ΅Π½ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ процСси ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΏΡ€ΠΈ ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅. Π’ Π½Π°ΠΉ-простата си Ρ„ΠΎΡ€ΠΌΠ° Ρ‚ΠΎΠ·ΠΈ Ρ‚ΠΈΠΏ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ² Π½ΠΈΠ· с Π·Π°Π³Π»Π°Π²ΠΊΠ° Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ с фиксиран Ρ€Π°Π·ΠΌΠ΅Ρ€ (Π² нашия случай 17 Π±Π°ΠΉΡ‚Π°), ΠΊΠΎΠΉΡ‚ΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° информация Π·Π° Ρ‚ΠΈΠΏΠ° Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π°, нСговия Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ Π΄Π²ΠΎΠΈΡ‡Π½Π° маска Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° цСлостта Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅.

ΠžΡ‚ страната Π½Π° PHP, която ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ…ΠΌΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Π° функция, Π° ΠΎΡ‚ страната Go Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅/Π΄Π²ΠΎΠΈΡ‡Π΅Π½.

Π‘Ρ‚Ρ€ΡƒΠ²Π°ΡˆΠ΅ Π½ΠΈ сС, Ρ‡Π΅ Π΅Π΄ΠΈΠ½ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Π½Π΅ Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π΅Π½ - ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ…ΠΌΠ΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½Π΅ net/rpc go услуги Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΡ‚ PHP. По-късно Ρ‚ΠΎΠ²Π° Π½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π°, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ…ΠΌΠ΅ лСсно Π΄Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°ΠΌΠ΅ Go Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² PHP прилоТСния. Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΡŠΡ‚ ΠΎΡ‚ Ρ‚Π°Π·ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π²ΠΈΠ΄ΠΈ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² другия Π½ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ Π“ΠΎΡ€ΠΈΠ΄ΠΆ.

РазпрСдСлянС Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ мноТСство PHP Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΡ†ΠΈ

Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ Π²Π½Π΅Π΄Ρ€ΠΈΡ…ΠΌΠ΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π·Π° взаимодСйствиС, Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…ΠΌΠ΅ Π΄Π° мислим Π·Π° Π½Π°ΠΉ-СфСктивния Π½Π°Ρ‡ΠΈΠ½ Π·Π° ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈ към PHP процСси. ΠšΠΎΠ³Π°Ρ‚ΠΎ пристигнС Π·Π°Π΄Π°Ρ‡Π°, ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ Π½Π° прилоТСния трябва Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π΅ свободСн Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊ, ΠΊΠΎΠΉΡ‚ΠΎ Π΄Π° я изпълни. Ако Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊ/процСс ΠΈΠ·Π»Π΅Π·Π΅ с Π³Ρ€Π΅ΡˆΠΊΠ° ΠΈΠ»ΠΈ β€žΡƒΠΌΡ€Π΅β€œ, Π½ΠΈΠ΅ сС ΠΎΡ‚ΡŠΡ€Π²Π°Π²Π°ΠΌΠ΅ ΠΎΡ‚ Π½Π΅Π³ΠΎ ΠΈ създавамС Π½ΠΎΠ², ΠΊΠΎΠΉΡ‚ΠΎ Π΄Π° Π³ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈ. И Π°ΠΊΠΎ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊΡŠΡ‚/ΠΏΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ Π΅ Π·Π°Π²ΡŠΡ€ΡˆΠΈΠ» ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, Π½ΠΈΠ΅ Π³ΠΎ Π²Ρ€ΡŠΡ‰Π°ΠΌΠ΅ Π² Π³Ρ€ΡƒΠΏΠ°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΡ†ΠΈ, Π½Π°Π»ΠΈΡ‡Π½ΠΈ Π·Π° изпълнСниС Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈ.

RoadRunner: PHP Π½Π΅ Π΅ създадСн, Π·Π° Π΄Π° ΡƒΠΌΡ€Π΅, ΠΈΠ»ΠΈ Golang Π½Π° ΠΏΠΎΠΌΠΎΡ‰

Π—Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡƒΠ»Π° ΠΎΡ‚ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΡ†ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ…ΠΌΠ΅ Π±ΡƒΡ„Π΅Ρ€ΠΈΡ€Π°Π½ ΠΊΠ°Π½Π°Π», Π·Π° Π΄Π° ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π΅ΠΌ Π½Π΅ΠΎΡ‡Π°ΠΊΠ²Π°Π½ΠΎ β€žΠΌΡŠΡ€Ρ‚Π²ΠΈβ€œ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΡ†ΠΈ ΠΎΡ‚ ΠΏΡƒΠ»Π°, Π΄ΠΎΠ±Π°Π²ΠΈΡ…ΠΌΠ΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ Π·Π° прослСдяванС Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΈ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΡ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΡ†ΠΈΡ‚Π΅.

Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ²Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ…ΠΌΠ΅ Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ PHP ΡΡŠΡ€Π²ΡŠΡ€, способСн Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° всякакви заявки, прСдставСни Π² Π΄Π²ΠΎΠΈΡ‡Π½Π° Ρ„ΠΎΡ€ΠΌΠ°.

Π—Π° Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅ Π½Π°ΡˆΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΊΠ°Ρ‚ΠΎ ΡƒΠ΅Π± ΡΡŠΡ€Π²ΡŠΡ€, Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π΅ΠΌ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ PHP стандарт, ΠΊΠΎΠΉΡ‚ΠΎ Π΄Π° прСдставя всички входящи HTTP заявки. Π’ нашия случай Π½ΠΈΠ΅ просто трансформирам net/http заявка ΠΎΡ‚ Go to format PSR-7Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π΄Π° Π΅ ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌ с ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ PHP Ρ€Π°ΠΌΠΊΠΈ, Π½Π°Π»ΠΈΡ‡Π½ΠΈ днСс.

Въй ΠΊΠ°Ρ‚ΠΎ PSR-7 сС счита Π·Π° Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ (някои Π±ΠΈΡ…Π° ΠΊΠ°Π·Π°Π»ΠΈ тСхничСски, Ρ‡Π΅ Π½Π΅ Π΅), Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ трябва Π΄Π° ΠΏΠΈΡˆΠ°Ρ‚ прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π½Π΅ Ρ‚Ρ€Π΅Ρ‚ΠΈΡ€Π°Ρ‚ заявката ΠΊΠ°Ρ‚ΠΎ Π³Π»ΠΎΠ±Π°Π»Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Π°. Π’ΠΎΠ²Π° сС вписва чудСсно Π² концСпцията Π·Π° Π΄ΡŠΠ»Π³ΠΎΡ‚Ρ€Π°ΠΉΠ½ΠΈ PHP процСси. ΠΠ°ΡˆΠ°Ρ‚Π° ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»Π½Π° рСализация, която всС ΠΎΡ‰Π΅ Π½Π΅ Π΅ Π½Π°Π·ΠΎΠ²Π°Π½Π°, изглСТдашС Ρ‚Π°ΠΊΠ°:

RoadRunner: PHP Π½Π΅ Π΅ създадСн, Π·Π° Π΄Π° ΡƒΠΌΡ€Π΅, ΠΈΠ»ΠΈ Golang Π½Π° ΠΏΠΎΠΌΠΎΡ‰

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡΠΌΠ΅ Π²ΠΈ RoadRunner - високопроизводитСлСн PHP ΡΡŠΡ€Π²ΡŠΡ€ Π·Π° прилоТСния

ΠŸΡŠΡ€Π²Π°Ρ‚Π° Π½ΠΈ тСстова Π·Π°Π΄Π°Ρ‡Π° бСшС API Π±Π΅ΠΊΠ΅Π½Π΄, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π½ΠΎ ΠΈΠ·Π±ΡƒΡ…Π²Π° Π² нСпрСдсказуСми заявки (ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-чСсто ΠΎΡ‚ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ). Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ nginx бСшС Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π΅Π½ Π² ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ случаи, Π½ΠΈΠ΅ Ρ€Π΅Π΄ΠΎΠ²Π½ΠΎ сС Π½Π°Ρ‚ΡŠΠΊΠ²Π°Ρ…ΠΌΠ΅ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ 502, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π½Π΅ успяхмС Π΄Π° балансирамС систСмата Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ Π±ΡŠΡ€Π·ΠΎ Π·Π° ΠΎΡ‡Π°ΠΊΠ²Π°Π½ΠΎΡ‚ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ.

Π—Π° Π΄Π° Π·Π°ΠΌΠ΅Π½ΠΈΠΌ Ρ‚ΠΎΠ²Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Π²Π½Π΅Π΄Ρ€ΠΈΡ…ΠΌΠ΅ ΠΏΡŠΡ€Π²ΠΈΡ си PHP/Go ΡΡŠΡ€Π²ΡŠΡ€ Π·Π° прилоТСния Π² Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° 2018 Π³. И Π²Π΅Π΄Π½Π°Π³Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈ нСвСроятСн Π΅Ρ„Π΅ΠΊΡ‚! НС само, Ρ‡Π΅ сС ΠΎΡ‚ΡŠΡ€Π²Π°Ρ…ΠΌΠ΅ напълно ΠΎΡ‚ Π³Ρ€Π΅ΡˆΠΊΠ°Ρ‚Π° 502, Π½ΠΎ успяхмС Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈΠΌ броя Π½Π° ΡΡŠΡ€Π²ΡŠΡ€ΠΈΡ‚Π΅ с Π΄Π²Π΅ Ρ‚Ρ€Π΅Ρ‚ΠΈ, спСстявайки ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ°Ρ€ΠΈ ΠΈ Ρ…Π°ΠΏΡ‡Π΅Ρ‚Π° Π·Π° Π³Π»Π°Π²ΠΎΠ±ΠΎΠ»ΠΈΠ΅ Π½Π° ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈ ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ²ΠΈ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ΠΈ.

Π”ΠΎ срСдата Π½Π° Π³ΠΎΠ΄ΠΈΠ½Π°Ρ‚Π° ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΈΡ…ΠΌΠ΅ Π½Π°ΡˆΠ΅Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Ρ…ΠΌΠ΅ Π³ΠΎ Π² GitHub ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·Π° Π½Π° MIT ΠΈ Π³ΠΎ Π½Π°ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Ρ…ΠΌΠ΅ RoadRunner, ΠΊΠ°Ρ‚ΠΎ ΠΏΠΎ Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€Ρ‚Π°Π²Π° нСвСроятната ΠΌΡƒ Π±ΡŠΡ€Π·ΠΈΠ½Π° ΠΈ СфСктивност.

Как RoadRunner ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΈ вашия стСк Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°

ΠŸΡ€ΠΈΠ»Π°Π³Π°Π½Π΅ RoadRunner Π½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Middleware net/http ΠΎΡ‚ страната Go, Π·Π° Π΄Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠΈΠΌ JWT ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°, ΠΏΡ€Π΅Π΄ΠΈ заявката Π΄Π° достигнС PHP, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°ΠΌΠ΅ WebSockets ΠΈ Π°Π³Ρ€Π΅Π³Π°Ρ‚Π½ΠΎΡ‚ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ Π³Π»ΠΎΠ±Π°Π»Π½ΠΎ Π² Prometheus.

Π‘Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° вградСния RPC, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΎΡ‚Π²ΠΎΡ€ΠΈΡ‚Π΅ API Π½Π° всяка Go Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π·Π° PHP, Π±Π΅Π· Π΄Π° ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΎΠ±Π²ΠΈΠ²ΠΊΠΈ Π½Π° Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ. По-Π²Π°ΠΆΠ½ΠΎΡ‚ΠΎ Π΅, Ρ‡Π΅ с RoadRunner ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅ Π½ΠΎΠ²ΠΈ Π½Π΅-HTTP ΡΡŠΡ€Π²ΡŠΡ€ΠΈ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΈ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€ΠΈ Π² PHP AWS Lambda, създаванС Π½Π° Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΈ ΠΏΡ€Π΅ΠΊΡŠΡΠ²Π°Ρ‡ΠΈ Π½Π° опашки ΠΈ Π΄ΠΎΡ€ΠΈ добавянС gRPC към Π½Π°ΡˆΠΈΡ‚Π΅ прилоТСния.

Π‘ ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° PHP ΠΈ Go общноститС ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΈΡ…ΠΌΠ΅ стабилността Π½Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ…ΠΌΠ΅ производитСлността Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π΄ΠΎ 40 ΠΏΡŠΡ‚ΠΈ Π² някои тСстовС, ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΈΡ…ΠΌΠ΅ инструмСнтитС Π·Π° отстраняванС Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ, Π²Π½Π΅Π΄Ρ€ΠΈΡ…ΠΌΠ΅ интСграция с Ρ€Π°ΠΌΠΊΠ°Ρ‚Π° Symfony ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ…ΠΌΠ΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° HTTPS, HTTP/2, плъгини ΠΈ PSR-17.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Някои Ρ…ΠΎΡ€Π° всС ΠΎΡ‰Π΅ са Ρ…Π²Π°Π½Π°Ρ‚ΠΈ Π² остарялата прСдстава Π·Π° PHP ΠΊΠ°Ρ‚ΠΎ Π±Π°Π²Π΅Π½, Ρ‚Ρ€ΠΎΠΌΠ°Π² Π΅Π·ΠΈΠΊ, подходящ само Π·Π° писанС Π½Π° плъгини Π·Π° WordPress. Π’Π΅Π·ΠΈ Ρ…ΠΎΡ€Π° ΠΌΠΎΠΆΠ΅ Π΄ΠΎΡ€ΠΈ Π΄Π° ΠΊΠ°ΠΆΠ°Ρ‚, Ρ‡Π΅ PHP ΠΈΠΌΠ° Ρ‚Π°ΠΊΠΎΠ²Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅: ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ станС Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ голямо, трябва Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π΅Ρ‚Π΅ ΠΏΠΎ-β€žΠ·Ρ€ΡΠ»β€œ Π΅Π·ΠΈΠΊ ΠΈ Π΄Π° ΠΏΡ€Π΅Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΊΠΎΠ΄ΠΎΠ²Π°Ρ‚Π° Π±Π°Π·Π°, Π½Π°Ρ‚Ρ€ΡƒΠΏΠ°Π½Π° Π² ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΠ΄ΠΈΠ½ΠΈ.

На всичко Ρ‚ΠΎΠ²Π° искам Π΄Π° отговоря: помислСтС ΠΎΡ‚Π½ΠΎΠ²ΠΎ. ВярвамС, Ρ‡Π΅ само Π²ΠΈΠ΅ Π·Π°Π΄Π°Π²Π°Ρ‚Π΅ ограничСния Π·Π° PHP. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΡ€Π΅ΠΊΠ°Ρ€Π°Ρ‚Π΅ цСлия си ΠΆΠΈΠ²ΠΎΡ‚ Π² ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ ΠΎΡ‚ Π΅Π΄ΠΈΠ½ Π΅Π·ΠΈΠΊ към Π΄Ρ€ΡƒΠ³, ΠΎΠΏΠΈΡ‚Π²Π°ΠΉΠΊΠΈ сС Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ ΠΈΠ΄Π΅Π°Π»Π½ΠΎΡ‚ΠΎ съвпадСниС Π·Π° Π²Π°ΡˆΠΈΡ‚Π΅ Π½ΡƒΠΆΠ΄ΠΈ, ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅Ρ‚Π΅ Π΄Π° мислитС Π·Π° Π΅Π·ΠΈΡ†ΠΈΡ‚Π΅ ΠΊΠ°Ρ‚ΠΎ Π·Π° инструмСнти. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΠΈΡ‚Π΅ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ†ΠΈ Π½Π° Π΅Π·ΠΈΠΊ ΠΊΠ°Ρ‚ΠΎ PHP Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° са ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°Ρ‚Π° Π·Π° нСговия успСх. И Π°ΠΊΠΎ Π³ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Ρ‚Π΅ с Π΄Ρ€ΡƒΠ³ Π΅Π·ΠΈΠΊ ΠΊΠ°Ρ‚ΠΎ Go, Ρ‚ΠΎΠ³Π°Π²Π° Ρ‰Π΅ ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-ΠΌΠΎΡ‰Π½ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈ, ΠΎΡ‚ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ Π°ΠΊΠΎ стС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈ Π΄ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° всСки Π΅Π΄ΠΈΠ½ Π΅Π·ΠΈΠΊ.

Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈΡ…ΠΌΠ΅ с ΠΊΡƒΠΏ Go ΠΈ PHP, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΊΠ°ΠΆΠ΅ΠΌ, Ρ‡Π΅ Π³ΠΈ ΠΎΠ±ΠΈΡ‡Π°ΠΌΠ΅. НС ΠΏΠ»Π°Π½ΠΈΡ€Π°ΠΌΠ΅ Π΄Π° ΠΆΠ΅Ρ€Ρ‚Π²Π°ΠΌΠ΅ Π΅Π΄Π½ΠΎΡ‚ΠΎ Π·Π°Ρ€Π°Π΄ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΡ‚ΠΎ - Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ², Ρ‰Π΅ Ρ‚ΡŠΡ€ΡΠΈΠΌ Π½Π°Ρ‡ΠΈΠ½ΠΈ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΎΡ‰Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ стойност ΠΎΡ‚ Ρ‚ΠΎΠ·ΠΈ Π΄Π²ΠΎΠ΅Π½ стСк.

UPD: привСтствамС ΡΡŠΠ·Π΄Π°Ρ‚Π΅Π»Ρ Π½Π° RoadRunner ΠΈ ΡΡŠΠ°Π²Ρ‚ΠΎΡ€Π° Π½Π° ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π½Π°Ρ‚Π° статия - Lachesis

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: www.habr.com

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€