πŸš€ PHP ΠœΠ΅Π½ΡΠ΅Ρ‚ ΠŸΡ€Π°Π²ΠΈΠ»Π° Π˜Π³Ρ€Ρ‹: FrankenPHP ВливаСтся Π² ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ!

Avatar
hannes

60

PHP

#Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

13 мая 2025 Π³ΠΎΠ΄Π° Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ Π±Π»ΠΎΠ³Π΅ PHP Foundation Π ΠΎΠΌΠ°Π½ ΠŸΡ€ΠΎΠ½ΡΠΊΠΈΠΉ объявил, Ρ‡Ρ‚ΠΎ FrankenPHP Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎ поддСрТиваСтся Ρ„ΠΎΠ½Π΄ΠΎΠΌ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‰Ρ‘Π½ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ PHP Π½Π° GitHub. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ КСвином Дунгласом ΠΈ спонсируСмый Les-Tilleuls.coop, ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ PHP прямо Π² Go ΠΈ Caddy, упрощая Π΄Π΅ΠΏΠ»ΠΎΠΉ, ΠΏΠΎΠ²Ρ‹ΡˆΠ°Ρ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ сниТая Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹.

#ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ возмоТности

  • Worker Mode: Β«Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉΒ» Ρ€Π΅ΠΆΠΈΠΌ, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ PHP-ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ загруТаСтся Π΅Π΄ΠΈΠ½ΠΎΠΆΠ΄Ρ‹ ΠΈ сохраняСтся Π² памяти ΠΌΠ΅ΠΆΠ΄Ρƒ запросами, Ρ‡Ρ‚ΠΎ сокращаСт Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы Π½Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π΄ΠΎ 80 %.
  • 103 Early Hints: ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… HTTP-подсказок, ΡƒΡΠΊΠΎΡ€ΡΡŽΡ‰ΠΈΡ… Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ страниц Π΄ΠΎ 20–30 %.
  • АвтоматичСскоС HTTPS ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° HTTP/2, HTTP/3, Encrypted Client Hello ΠΈ Zstandard-сТатия Β«ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈΒ» благодаря Caddy.
  • ВстроСнный Mercure-Ρ…Π°Π± для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ real-time Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ инфраструктуры.
  • Metrics & Logging: структурированныС Π»ΠΎΠ³ΠΈ ΠΈ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ OpenMetrics/Prometheus для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.
  • Π Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΡΡ‚ΡŒ: Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ PHP-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² Π»ΡŽΠ±Ρ‹Π΅ Go-прилоТСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ C ΠΈ C++ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

#АрхитСктура ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ

FrankenPHP прСдставляСт собой Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ Π±ΠΈΠ½Π°Ρ€Π½ΠΈΠΊ Π½Π° Go с Π²ΡˆΠΈΡ‚Ρ‹ΠΌ PHP-SAPI, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠ²Π΅Ρ€Ρ… Π²Π΅Π±-сСрвСра Caddy. Π­Ρ‚ΠΎ позволяСт:

  1. Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ «всё Π² ΠΎΠ΄Π½ΠΎΠΌΒ» β€” статичСски скомпилированный исполняСмый Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ Docker-ΠΎΠ±Ρ€Π°Π·.
  2. Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π·Π½Π°ΠΊΠΎΠΌΡ‹Π΅ workflow β€” ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с Laravel, Symfony ΠΈ Yii Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΡŽΡ‚ worker mode Π±Π΅Π· ΠΏΡ€Π°Π²ΠΎΠΊ ΠΊΠΎΠ΄Π°.
  3. ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Β«share nothingΒ» ΠΌΠΎΠ΄Π΅Π»ΠΈ соврСмСнных Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ², избСгая ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠΉ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ядра прилоТСния.

#Бтатистика ΠΈ Ρ€Π΅Π»ΠΈΠ·

  • v1.5.0 Π²Ρ‹ΡˆΠ»Π° 26 ΠΌΠ°Ρ€Ρ‚Π° 2025 Π³ΠΎΠ΄Π° с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Π°Π²Ρ‚ΠΎΠΏΠΎΠ΄Π±ΠΎΡ€Π° ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Ρ‹ΠΌΠΈ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Π°ΠΌΠΈ.
  • На GitHub ΡƒΠΆΠ΅ ΠΏΠΎΡ‡Ρ‚ΠΈ 8 000 Π·Π²Ρ‘Π·Π΄, Π±ΠΎΠ»Π΅Π΅ 100 ΠΊΠΎΠ½Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΡ€ΠΎΠ², 300 Ρ„ΠΎΡ€ΠΊΠΎΠ² ΠΈ 150 issue.
  • По Π΄Π°Π½Π½Ρ‹ΠΌ Sylius, worker mode сниТаСт врСмя ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠ° Π½Π° 80 % ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ число сСрвСров Π² 6 Ρ€Π°Π· для Ρ€Π°Π²Π½ΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.

#ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΈ ΠΏΠ»Π°Π½Ρ‹

  • Код FrankenPHP Π±ΡƒΠ΄Π΅Ρ‚ пСрСнСсён Π² ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ PHP Foundation Π½Π° GitHub; ΠΊΠΎΠΌΠ°Π½Π΄Π° Ρ„ΠΎΠ½Π΄Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ участиС Π² ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ ΠΈ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.
  • ДокумСнтация частично ΠΌΠΈΠ³Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π° php.net для Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ ΠΎΠΏΡ‹Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с языком.
  • Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ остаётся Π·Π° КСвином Дунгласом, Π ΠΎΠ±Π΅Ρ€Ρ‚ΠΎΠΌ ЛандСрсом ΠΈ АлСксандром Π¨Ρ‚Π΅Ρ…Π΅Ρ€ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ PHP Foundation.
  • Les-Tilleuls.coop ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ спонсорство ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² FrankenPHP.
  • Π’ Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ FrankenPHP ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСн Π½Π° php.net ΠΊΠ°ΠΊ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ способ запуска ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ наряду с PHP-FPM.

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

ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° PHP Foundation ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ FrankenPHP Π½ΠΎΠ²Ρ‹Π΅ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Ρ‹: ускорит ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ ΠΈΠ½Π½ΠΎΠ²Π°Ρ†ΠΈΠΉ языка, упростит Π²ΠΊΠ»Π°Π΄ сообщСства ΠΈ ΡƒΠΊΡ€Π΅ΠΏΠΈΡ‚ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ PHP Π² эпоху cloud-native ΠΈ real-time Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘Π»Π΅Π΄ΠΈΡ‚Π΅ Π·Π° обновлСниями ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ Π½Π° FrankenPHP, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡ‡ΡƒΠ²ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ гибкости!

ΠžΠ±ΡΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅