Π»ΡΡΡΠΈΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π΄Π»Ρ php
ΠΠ°ΠΊ Π²ΡΠ±ΡΠ°ΡΡ ΡΠΎΡ ΡΠ°ΠΌΡΠΉ PHP-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ. Π‘ΡΠ°Π²Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΏΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ ΡΡΠΎΠΈΡ Π·Π°Π΄Π°ΡΠ° Π³ΡΠ°ΠΌΠΎΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ±ΠΎΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠ΅ΠΉ ΡΡΡΡΠΊΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ ΡΡΠ΅ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊ, ΠΎΡ Β«ΠΊΠ°ΠΊ Π±ΡΡΡΡΠΎ Π²ΡΡ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡΒ» Π΄ΠΎ Β«Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° Π»ΠΈ Π½Π°ΠΌ ΡΡΠ° ΡΠΈΡΠ°?Β». Π ΡΠ°ΠΊ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·. ΠΠΌΠ΅Π½Π½ΠΎ Π² ΠΌΠΎΠΌΠ΅Π½ΡΡ ΠΌΠΎΠ·Π³ΠΎΠ²ΠΎΠ³ΠΎ ΡΡΡΡΠΌΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°, ΡΠΊΠΎΡΠΎΡΡΡ, Π½Π°Π±ΠΎΡ ΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π² Π½Π΅ΠΌ ΠΈΠ»ΠΈ Π² ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΡ Ρ Π½ΠΈΠΌ ΠΌΠΎΠ΄ΡΠ»ΡΡ .
ΠΠΎ ΠΊΠ°ΠΊΠΎΠΉ ΠΆΠ΅ Π²ΡΡ-ΡΠ°ΠΊΠΈ Π»ΡΡΡΠ΅, Π±ΡΡΡΡΠ΅Π΅ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½Π΅Π΅?
Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΏΡΠΎΠ²ΠΎΠ΄ΡΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ², ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΡΠ½ΠΈΡΡ Π΄Π»Ρ ΡΠ΅Π±Ρ ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΡΠ°ΡΡΠ΅ Lukasz Kujawa ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ PHP ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ². ΠΠ΄Π½ΠΎ Β«Π½ΠΎΒ» β ΡΡΠ°ΡΡΡ Π·Π° 2013 Π³ΠΎΠ΄. Π Π²Π΅Π΄Ρ Π²ΡΠ΅ΠΌΡ ΠΈΠ΄ΡΡβ¦ ΠΠΎΡΡΠΎΠΌΡ ΠΌΡ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ ΡΠ²ΠΎΡ, Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ².
ΠΠ»Ρ ΠΎΡΠ΅Π½ΠΊΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π±ΡΠ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ PHP Framework Benchmark. ΠΠ½ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π΄Π»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² (Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π²ΡΡΠ΅), Π½ΠΎ Π°Π²ΡΠΎΡ Π½Π΅ ΡΠΏΠ΅ΡΠΈΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π½ΠΎΠ²ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², ΡΡΠΎ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅, ΠΏΠ΅ΡΠ°Π»ΡΠ½ΠΎ, Ρ ΠΎΡΡ ΠΈ Π½Π΅ ΡΠΌΠ΅ΡΡΠ΅Π»ΡΠ½ΠΎ. ΠΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡ Π½Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎ.
ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠ΅Π»Π΅ΠΉ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠΈ ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠΏΡΡΠΊΠ° ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΡΡΠ΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΠΉ PHP. ΠΠΎΡΡΠΎΠΌΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΎ Π½Π° Π ΠΠ 5.6/7.0/7.1
Π§ΡΠΎ Π±ΡΠ΄Π΅ΠΌ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ?
ΠΠ»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Π±ΡΠ»ΠΈ Π²ΡΠ±ΡΠ°Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ:
ΠΠ΅ΡΠΎΠ΄ΠΈΠΊΠ° ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ΅ΡΡΠΎΠ²ΡΠΉ ΡΡΠ΅Π½Π΄
ΠΠ°ΡΠΈΠ½Π°, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠ»ΠΎΡΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ°ΠΌΠΈ:
Operation system: Linux Mint 17 Cinnamon 64-bit
Cinnamin Version 2.2.16
Linux Kernel: 3.13.0-24-generic
Processor: Intel Core i3-4160 CPU 3.60 Ghz X 2
Memory: 8 GB
Server version: Apache/2.4.7 (ubuntu)
Server build: Jul 15 2016
php 7.1 / php7.0 / php5.6
ΠΠ²ΠΎΠ΄ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git clone https://github.com/kenjis/php-framework-benchmark β ΠΈ ΡΡΠ΅ΠΉΠΌ ΡΠΆΠ΅ Π½Π° Π½Π°ΡΠ΅ΠΉ ΠΌΠ°ΡΠΈΠ½Π΅. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Mint, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ:
# Added net.netfilter.nf_conntrack_max = 100000 net.nf_conntrack_max = 100000 net.ipv4.tcp_max_tw_buckets = 180000 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_fin_timeout = 10
ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎ ΡΡΡΡΠΊΡΡΡΠ΅ ΡΠ°ΠΌΠΎΠ³ΠΎ php-framework-benchmark:
/benchmarks β ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ bash-ΡΠΊΡΠΈΠΏΡΡ, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΠ΅ Π·Π° ΡΠ±ΠΎΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ (ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠΈΠ»ΠΈΡΡ ab), ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π±ΡΠ»ΠΎ ΠΏΠΎΡΡΠ°ΡΠ΅Π½ΠΎ ΠΈ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»ΠΎΠ² Π²ΡΠ·ΡΠ²Π°Π»ΠΎΡΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π° Β«ΡΠΎΡΠΊΠΈ ΡΡΠ°ΡΡΠ°Β».
/lib β Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ ΡΠ°ΠΉΠ»Ρ, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΠ΅ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ²ΠΎΠ΄Π° ΡΡΡΠ°Π½ΠΈΡΡ βHello worldβ, Π²ΡΠ²ΠΎΠ΄ ΡΠ°Π±Π»ΠΈΡ Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌΠΈ ΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌ.
ΠΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΠΏΠΊΠΈ β ΡΡΠΎ Π·Π°Π³ΠΎΡΠΎΠ²ΠΊΠΈ ΡΡΠ΅ΠΉΠΌΠΎΠ², Π² ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Π΅ΡΠ½Π΅Ρ ΡΡΡΠΎΠΊΡ βhello worldβ ΠΏΡΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΏΠΎ URI, ΡΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΌΡ ΠΏΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ Π΄Π°Π½Π½ΠΎΠΌΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΡ.
ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ΅ΡΡΠ° ΡΠ½Π°ΡΠ°Π»Π° Π½ΡΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΄Π²Π° ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°.
ΠΠΎΠΌΠ°Π½Π΄Π° bash setup.sh Π½Π°ΡΡΡΠΎΠΈΡ ΡΠ΅ ΡΡΠ΅ΠΌΠ²ΠΎΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½Ρ Π² ΡΠ°ΠΉΠ»Π΅ list.sh. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΅Π³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ: Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΈ ΡΠ΄Π°Π»ΡΡΡ ΠΏΠ°ΠΏΠΊΠΈ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π’ΠΎ Π΅ΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ.
ΠΠΎΠΌΠ°Π½Π΄ΠΎΠΉ bash setup.sh fatfree-3.5/ slim-3.0/ lumen-5.1/ silex-1.3/ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ, Π·Π°Π΄Π°Π² ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π΅. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ ΡΡΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ, Π½ΠΎ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄.
ΠΠΎ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠΈ ΡΠ°Π±ΠΎΡΡ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅ ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ ΡΠ°Π±Π»ΠΈΡΠ° ΡΠΎ ΡΠΏΠΈΡΠΊΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ², ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ, ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ, Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΡΡΠΈΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ.
ΠΠ»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² ΠΌΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ ΡΡΡΠ»ΠΊΠΎΠΉ http://localhost/php-framework-benchmark/.
ΠΠ°ΠΊ Π²Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡΠ»ΠΎ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΡ Apache ΠΈ Π·Π°ΡΡΠ°Π²ΠΈΡΡ Π΅Π³ΠΎ ΡΠΌΠΎΡΡΠ΅ΡΡ Π² ΠΏΠ°ΠΏΠΊΡ Ρ ΡΡΠ΅ΠΉΠΌΠΎΠΌ. ΠΡΡ ΡΡΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² readme, ΠΏΠΎΡΡΠΎΠΌΡ Π²ΠΎΠΏΡΠΎΡΠΎΠ² Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ.
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ²
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·Π΄Π΅Π» ΠΈΠΌΠ΅Π΅Ρ ΡΡΡΡΠΊΡΡΡΡ, ΡΠΎΡΡΠΎΡΡΡΡ ΠΈΠ· Π΄Π²ΡΡ ΡΠΎΡΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ².
ΠΠ΅ΡΠ²Π°Ρ ΡΠΎΡΠΌΠ° β ΡΡΠΎ Π½Π°Π³Π»ΡΠ΄Π½ΡΠΉ ΡΠΈΠΏ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ. ΠΠ°ΠΆΠ΄Π°Ρ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ 4 Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ. ΠΠ°ΠΆΠ΄Π°Ρ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ, ΠΏΠ»ΡΡ Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ°. ΠΠ½Π° Π±ΡΠ»Π° ΠΏΠΎΡΡΡΠΎΠ΅Π½Π° ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π ΠΠ . Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠ»Π΅Π΄ΠΈΡΡ ΡΠ²ΠΎΠ»ΡΡΠΈΡ ΡΠ»ΡΡΡΠ΅Π½ΠΈΠΉ Π² PHP ΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°Ρ .
ΠΡΠΎΡΠ°Ρ ΡΠΎΡΠΌΠ° β ΡΡΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² Π²ΠΈΠ΄Π΅ ΡΠ°Π±Π»ΠΈΡΡ (Ρ Π²Π°ΡΠΈΡΡ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡΠΈ, Π΄Π°Π²Π°ΠΉΡΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΡΠ΅ΡΡΠ΅Π·Π½ΠΎ β Π΄Π°ΠΉΡΠ΅ ΠΌΠ½Π΅ Π±ΠΎΠ»ΡΡΠ΅ ΡΠΈΡΠ΅Π»!).
ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ (throughput)
ΠΡΠΈΠΌΠ΅Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊ Π½Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ, Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ° throughput ΠΈΠ·ΠΌΠ΅ΡΡΠ΅ΡΡΡ Π² ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Ρ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΡΠ΅ΠΊΡΠ½Π΄Ρ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΠ΅ΠΌ Π²ΡΡΠ΅ ΡΡΠΎ ΡΠΈΡΠ»ΠΎ, ΡΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ΠΎ ΡΠΌΠΎΠΆΠ΅Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π·Π°ΠΏΡΠΎΡΡ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ.
ΠΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ (Π·Π°ΠΏΡΠΎΡΡ Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ):
php 5.6 | php 7.0 | php 7.1 | |
---|---|---|---|
phalcon-3.1.2 | 5058.00 | 5130.00 | 7535.00 |
ci-3.0 | 2943.55 | 4116.31 | 4998.05 |
slim-3.0 | 2074.59 | 3143.94 | 3681.00 |
yii-2.0 | 1256.31 | 2276.37 | 2664.61 |
silex-1.3 | 1401.92 | 2263.90 | 2576.22 |
lumen-5.1 | 1316.46 | 2384.24 | 2741.81 |
ze-1.0 | 1181.14 | 1989.99 | 1741.81 |
phpixie-3.2 | 898.63 | 1677.15 | 1896.23 |
fuel-1.8 | 1044.77 | 1646.67 | 1770.13 |
bluz-7.3.1 | β * | 1774.00 | 1890.00 |
zf-2.5 | 198.66 | 623.71 | 739.12 |
zf-3.0 | 447.88 | 1012.57 | 1197.26 |
symfony-2.7 | 360.03 | 873.40 | 989.57 |
symfony-3.0 | 372.19 | 853.51 | 1022.28 |
laravel-5.3 | 258.62 | 346.25 | 625.99 |
laravel-5.4 | 219.82 | 413.49 | 600.42 |
* β bluz-7.3.1 Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ php 5.6
ΠΠ»Ρ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡΠΈ ΠΏΠΎΡΡΡΠΎΠΈΠ»ΠΈ Π³ΡΠ°ΡΠΈΠΊΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ PHP:
PHP5.6:
PHP7.0:
PHP7.1:
Π‘Π²ΠΎΠ΄Π½Π°Ρ Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° (ΠΏΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°ΠΌ):
ΠΠ°Π½ΠΈΠΌΠ°Π΅ΠΌΠ°Ρ ΠΏΠ°ΠΌΡΡΡ (peak memory)
ΠΡΠ° Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ° (Π² ΠΌΠ΅Π³Π°Π±Π°ΠΉΡΠ°Ρ ) ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠΌ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄ Π½ΠΈΠΌ Π·Π°Π΄Π°ΡΠΈ. Π§Π΅ΠΌ ΠΌΠ΅Π½ΡΡΠ΅ Π΄Π°Π½Π½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ, ΡΠ΅ΠΌ Π»ΡΡΡΠ΅ Π΄Π»Ρ Π½Π°Ρ ΠΈ Π΄Π»Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°:
php 5.6 | php 7.0 | php 7.1 | |
---|---|---|---|
phalcon-3.1.2 | 0.27 | 0.38 | 0.37 |
ci-3.0 | 0.42 | 0.38 | 0.38 |
slim-3.0 | 0.61 | 0.55 | 0.55 |
yii-2.0 | 1.31 | 0.91 | 0.91 |
silex-1.3 | 0.74 | 0.65 | 0.65 |
lumen-5.1 | 0.80 | 0.63 | 0.63 |
ze-1.0 | 0.79 | 0.56 | 0.56 |
phpixie-3.2 | 1.22 | 0.82 | 0.82 |
fuel-1.8 | 0.7 | 0.6 | 0.6 |
bluz-7.3.1 | β * | 0.69 | 0.69 |
zf-2.5 | 3.06 | 1.34 | 1.34 |
zf-3.0 | 2.12 | 1.09 | 1.08 |
symfony-2.7 | 3.11 | 1.41 | 1.42 |
symfony-3.0 | 2.86 | 1.30 | 1.32 |
laravel-5.3 | 2.91 | 2.04 | 2.04 |
laravel-5.4 | 3.04 | 1.45 | 1.49 |
* β bluz-7.3.1 Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ php 5.6
PHP 5.6:
PHP 7.0:
PHP 7.1:
Π‘Π²ΠΎΠ΄Π½Π°Ρ Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° (ΠΏΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°ΠΌ):
ΠΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
ΠΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ β Π²ΡΠ΅ΠΌΡ, Π·Π°ΡΡΠ°ΡΠΈΠ²Π°Π΅ΠΌΠΎΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ. ΠΠ·ΠΌΠ΅ΡΡΠ΅ΡΡΡ ΠΎΡ Π½Π°ΡΠ°Π»Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ Π΄ΠΎ Π²ΡΠ΄Π°ΡΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ.
ΠΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠ°ΠΌΡΡΠΈ ΠΎΠ½ ΠΏΡΠΈ ΡΡΠΎΠΌ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ. Π’Π΅ΠΏΠ΅ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΠΆΠΈΠ΄Π°ΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΡΠ²Π΅Ρ ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ°. Π§Π΅ΠΌ Π½ΠΈΠΆΠ΅ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠ΅ΠΌ Π»ΡΡΡΠ΅ Π΄Π»Ρ Π½Π°Ρ, Π΄Π° ΠΈ Π΄Π»Ρ Π½Π΅ΡΠ²Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡΠ΅ΠΌΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΎ Π² ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄Π°Ρ (ms):
php 5.6 | php 7.0 | php 7.1 | |
---|---|---|---|
phalcon-3.1.2 | 1.300 | 1.470 | 1.080 |
ci-3.0 | 0.996 | 0.818 | 1.007 |
slim-3.0 | 1.530 | 1.228 | 0.662 |
yii-2.0 | 1.478 | 1.410 | 1.639 |
silex-1.3 | 4.657 | 1.625 | 2.681 |
lumen-5.1 | 2.121 | 1.829 | 1.228 |
ze-1.0 | 2.629 | 2.069 | 1.528 |
phpixie-3.2 | 9.329 | 4.757 | 1.911 |
fuel-1.8 | 3.283 | 2.684 | 1.425 |
bluz-7.3.1 | β * | 1.619 | 1.921 |
zf-2.5 | 22.042 | 5.011 | 3.998 |
zf-3.0 | 12.680 | 2.506 | 2.989 |
symfony-2.7 | 6.529 | 3.902 | 2.384 |
symfony-3.0 | 9.335 | 3.987 | 2.820 |
laravel-5.3 | 19.885 | 4.840 | 2.622 |
laravel-5.4 | 19.561 | 4.758 | 3.940 |
PHP 5.6:
PHP 7.0:
PHP 7.1:
Π‘Π²ΠΎΠ΄Π½Π°Ρ Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° (ΠΏΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°ΠΌ):
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ
Π₯Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ°, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠ°Ρ Π·Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½Ρ Π² ΡΠ°ΠΉΠ»Π΅ Β«ΡΠΎΡΠΊΠΈ Π²Ρ ΠΎΠ΄Π°Β» ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°. ΠΠΎΠ½ΡΡΠ½ΠΎ, ΡΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΡΠ°ΡΠΈΡ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ Π²ΡΠ΅ΠΌΡ Π½Π° ΠΏΠΎΠΈΡΠΊ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΠ΅ΠΌ ΠΌΠ΅Π½ΡΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠ΅ΠΌ Π±ΡΡΡΡΠ΅Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΡΡ ΠΏΠ΅ΡΠ²ΡΠΉ Π·Π°ΠΏΡΡΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎ Π² ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°Π·Ρ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΠΊΡΡΠ΅ΠΌ, ΡΡΠΎ ΡΡΠΊΠΎΡΡΠ΅Ρ ΡΠ°Π±ΠΎΡΡ:
phalcon-3.1.2 | 5 |
ci-3.0 | 26 |
slim-3.0 | 53 |
yii-2.0 | 46 |
silex-1.3 | 63 |
lumen-5.1 | 37 |
ze-1.0 | 68 |
phpixie-3.2 | 163 |
fuel-1.8 | 53 |
bluz-7.3.1 | 95 |
zf-2.5 | 222 |
zf-3.0 | 188 |
symfony-2.7 | 110 |
symfony-3.0 | 192 |
laravel-5.3 | 38 |
laravel-5.4 | 176 |
Π Π°Π·Π½ΠΈΡΠ° Π² ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ Laravel 5.3 ΠΈ Laravel 5.4 ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΡΡΡΠ°Π½Π½ΠΎΠΉ ΠΈ Π΄Π°ΡΡ ΠΏΠΎΠ²ΠΎΠ΄ ΠΊ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡΠΌ, ΡΠΏΠΎΡΠ°ΠΌ ΠΈ Ρ.ΠΏ. Π‘ΠΏΠ΅ΡΠΈΠΌ ΡΠ°Π·ΡΡΡΠ½ΠΈΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ. ΠΠ°ΠΊ Π²Ρ Π·Π½Π°Π΅ΡΠ΅, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
Π² Laravel 5.3 ΠΌΠΎΠΆΠ½ΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ» compiled.php, ΠΈ ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠΎΠ±ΡΠ°Π² ΠΈΡ Π² ΠΎΠ΄ΠΈΠ½. ΠΠΎ Π΅ΡΡΡ ΠΎΠ΄Π½ΠΎ Β«Π½ΠΎΒ»: ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π² Laravel 5.4 Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅Ρ. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠ΅ΡΠΈΠ» ΡΠ΄Π°Π»ΠΈΡΡ ΡΡΡ ΡΠΈΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΡΡΠΈΡΠ°Π» (https://github.com/laravel/framework/pull/17003), ΡΡΠΎ Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ opcache.
Π‘ΡΠΎΠΈΡ Π»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ?
Π‘Π²ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎ Π²Π΅ΡΡΠΈΡΠΌ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ Π½Π°Π³Π»ΡΠ΄Π½ΠΎ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ ΠΏΡΠΈΡΠΎΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π΅ (ΠΈΠ»ΠΈ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ±ΠΎΡΠ΅) Π½Π° Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡ PHP.
ΠΡΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π΅ Ρ PHP 5.6 Π½Π° PHP 7.0 ΡΡΠ΅Π΄Π½ΠΈΠΉ ΠΏΡΠΈΡΠΎΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠΎΡΡΠ°Π²ΠΈΠ» ΠΏΠΎΡΡΠΈ +90%, ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΏΡΠΈΡΠΎΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠΎΡΡΠ°Π²ΠΈΠ» +33% Π΄Π»Ρ Laravel 5.3, Π° ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ β >200% Π΄Π»Ρ Zend Framework 2.5.
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ Ρ Π²Π΅ΡΡΠΈΠΈ 7.0 Π½Π° 7.1 ΡΠΆΠ΅ Π½Π΅ ΡΠ°ΠΊ ΡΠΎΠΊΠΈΡΡΠ΅Ρ, Π½ΠΎ Π²ΡΡ ΠΆΠ΅ Π² ΡΡΠ΅Π΄Π½Π΅ΠΌ Π΄Π°ΡΡ ΠΏΠΎΡΡΠΈ 20% ΠΏΡΠΈΡΠΎΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
Π‘Π²Π΅Π΄Ρ Π²ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
Π²Π΅ΡΡΠΈΠΉ PHP, ΠΏΠΎΠ»ΡΡΠΈΠΌ Π²ΠΎΡ ΡΠ°ΠΊΠΈΠ΅ Β«ΠΌΠ°ΡΡΠ°ΡΡΒ»:
ΠΠ°Π±Π°Π²Π½ΡΠΉ ΡΠ°ΠΊΡ: Laravel 5.3 ΠΏΠΎΠΊΠ°Π·Π°Π» Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠΈΠΉ ΠΏΡΠΈΡΠΎΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Ρ PHP 5.6 Π½Π° PHP 7.0, Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠΈΠΉ ΠΏΡΠΈΡΠΎΡΡ ΠΏΡΠΈ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Ρ Π²Π΅ΡΡΠΈΠΈ 7.0 Π½Π° Π²Π΅ΡΡΠΈΡ 7.1, ΠΈ ΠΊΠ°ΠΊ ΠΈΡΠΎΠ³ β ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Laravel 5.3 ΠΈ 5.4 Π½Π° PHP 7.1 ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Π°.
ΠΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΡΠΎΠΆΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π»ΠΈ, ΡΠ°ΠΊ ΡΡΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Ρ PHP 5.6 Π½Π° PHP 7.0 ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΡΠ΅ΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΡΡΠ΅Π±Π»ΡΡΡ Π½Π° 30% ΠΌΠ΅Π½ΡΡΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Ρ Π²Π΅ΡΡΠΈΠΈ 7.0 Π΄ΠΎ Π²Π΅ΡΡΠΈΠΈ 7.1 ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ Π΄Π°ΡΡ ΠΏΡΠΈΡΠΎΡΡΠ°, Π° Π² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ
Symfony ΠΈ Laravel ΡΠ°ΠΊ ΠΈ Π²ΠΎΠ²ΡΠ΅ ΡΡ
ΠΎΠ΄ΠΈΠΌ Π² Β«ΠΌΠΈΠ½ΡΡΒ», ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ΠΈ Π½Π°ΡΠΈΠ½Π°ΡΡ ΡΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ Β«ΠΊΡΡΠ°ΡΡΒ».
ΠΡΡΠ°Π»ΠΎΡΡ Π΅ΡΡ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΈ Π΄Π°, ΡΡΡ ΡΠΎΠΆΠ΅ Π²ΡΡ ΠΎΡΠ»ΠΈΡΠ½ΠΎ:
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅. Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ab β Ρ ΡΠ΅ΠΌ ΠΌΡ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈΡΡ
Β«Π ΡΡΠΎ ΡΠΎ slim ΠΈ phpixieΒ» β ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ ΠΏΠΎΠ΄ΡΠΎΠ»ΠΊΠ½ΡΠ» Π½Π° ΡΠ°ΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΡΠΈΠ»ΠΈΡΡ ab ΠΏΡΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΈ Ρ ΡΡΠΈΠΌΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°ΠΌΠΈ.
ΠΡΠΏΠΎΠ»Π½ΠΈΠΌ ΡΠ΅ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ Π΄Π»Ρ Slim-3.0:
Concurrency Level: 10
Time taken for tests: 5.005 seconds
Complete requests: 2
Failed requests: 0
Total transferred: 1800 bytes
HTML transferred: 330 bytes
Requests per second: 0.40 [#/sec] (mean)
Time per request: 25024.485 [ms] (mean)
Time per request: 2502.448 [ms] (mean, across all concurrent requests)
Transfer rate: 0.35 [Kbytes/sec] received
Π§ΡΠΎ-ΡΠΎ Π½Π΅ ΡΠ°ΠΊ β ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ Π²ΡΠ΅Π³ΠΎ 0.4 (!)
Concurrency Level: 10
Time taken for tests: 3.004 seconds
Complete requests: 1961
Failed requests: 0
Total transferred: 1995682 bytes
HTML transferred: 66708 bytes
Requests per second: 652.86 [#/sec] (mean)
Time per request: 15.317 [ms] (mean)
Time per request: 1.532 [ms] (mean, across all concurrent requests)
Transfer rate: 648.83 [Kbytes/sec] received
ΠΠ΅Π»ΠΎ Π±ΡΠ»ΠΎ Π² Keep Alive ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΈ, ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ ΡΡΡ.
βWhen you make requests with Β«Connection: keep-aliveΒ» the subsequent request to the server will use the same TCP connection. This is called HTTP persistent connection. This helps in reduction CPU load on server side and improves latency/response time.
If a request is made with Β«Connection: closeΒ» this indicates that once the request has been made the server needs to close the connection. And so for each request a new TCP connection will be established.
By default HTTP 1.1 client/server uses keep-alive where as HTTP 1.0 client/server donβt support keep-alive by default.β
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠ΅ΡΡ Π΄Π»Ρ Slim Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
Concurrency Level: 10
Time taken for tests: 3.000 seconds
Complete requests: 10709
Failed requests: 0
Total transferred: 2131091 bytes
HTML transferred: 353397 bytes
Requests per second: 3569.53 [#/sec] (mean)
Time per request: 2.801 [ms] (mean)
Time per request: 0.280 [ms] (mean, across all concurrent requests)
Transfer rate: 693.69 [Kbytes/sec] received
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠ°ΠΊ ΠΈ ΡΡΠΎΠΈΠ»ΠΎ ΠΎΠΆΠΈΠ΄Π°ΡΡ Π±Π΅Π·ΠΎΠ³ΠΎΠ²ΠΎΡΠΎΡΠ½ΡΠΌ Π»ΠΈΠ΄Π΅ΡΠΎΠΌ ΠΏΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ (Π½ΠΎ Π½Π΅ ΡΠΊΠΎΡΠΎΡΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ) ΡΠ²Π»ΡΠ΅ΡΡΡ Phalcon. ΠΡΠΎΡΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ, β Π° Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΡΡΠ΅Π΄ΠΈ PHP-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² (Π° Π½Π΅ C, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π½Π°ΠΏΠΈΡΠ°Π½ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Phalcon) β Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ CodeIgniter 3!
ΠΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅, Π½Π΅ ΡΡΠΎΠΈΡ Π·Π°Π±ΡΠ²Π°ΡΡ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ²ΠΎΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΡΠ»ΠΈ Π²Ρ Π²ΡΠ±ΠΈΡΠ°Π΅ΡΠ΅ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΈ Π»Π΅Π³ΠΊΠΈΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΈ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΠ΅ΡΡ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π½Π° Π½ΡΠΌ ΡΡΠΎ-ΡΠΎ ΠΎΡΠ»ΠΈΡΠ½ΠΎΠ΅ ΠΎΡ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ REST API, ΡΠΎ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π²Ρ ΡΡΠΎΠ»ΠΊΠ½ΡΡΠ΅ΡΡ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ ΠΏΡΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π°. Π Π½Π°ΠΎΠ±ΠΎΡΠΎΡ β ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ , Π±ΠΎΠ»ΡΡΠΈΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² ΠΏΠΎΠ²Π»Π΅ΡΡΡ Π·Π° ΡΠΎΠ±ΠΎΠΉ ΡΠΈΠ½Π°Π½ΡΠΎΠ²ΡΠ΅ ΠΈΠ·Π΄Π΅ΡΠΆΠΊΠΈ Π½Π° ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ Ρ ΠΎΡΡΠΈΠ½Π³Π° Π΄Π°ΠΆΠ΅ Π΄Π»Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ΄ Π±ΠΎΠ»ΡΡΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΎΠΉ.
ΠΡΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠ»ΠΎΡΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡ/ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ/ΡΠΊΡΠ΅ΠΏΠΈΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΠ·ΡΠΊΠ° Π ΠΠ Π²Π΅ΡΡΠΈΠΉ 7.0 ΠΈ 7.1 Π² Π²Π°ΡΠ΅ΠΌ ΡΠΎΠ·Π½Π°Π½ΠΈΠΈ ΠΈ Π² Π±ΡΠ΄ΡΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ , Π΄ΠΎΠ½Π΅ΡΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²ΠΎΠ·ΡΠΎΡΠ»Π°.
Π Π΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΡΡΡΡΠΊΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠ°ΠΏΠ° ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠ΅ΠΉ ΠΊΠΎΠ΄Π° Π² Π²ΠΈΠ΄Π΅ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅Π²Π° β Abstract Syntax Tree (AST), β ΠΏΡΠΈΠ²Π΅Π»ΠΈ ΠΊ ΠΏΡΠ΅Π²ΠΎΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠΌΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ. Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ°ΠΌΠΈ ΠΏΠΎ ΡΠ΅Π±Π΅ Π²ΡΠ³Π»ΡΠ΄ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΎΠ±Π΅ΡΠ°ΡΡΠ΅: ΡΠ΅ΡΡΡ, Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠ΅ Π½Π° ΡΠ΅Π°Π»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ , ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΡΡΠΎ PHP 7 Π² ΡΡΠ΅Π΄Π½Π΅ΠΌ Π²Π΄Π²ΠΎΠ΅ Π±ΡΡΡΡΠ΅Π΅ PHP 5.6, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π½Π° 50% ΠΌΠ΅Π½ΡΡΠ΅ ΠΏΠ°ΠΌΡΡΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ PHP 7 ΡΠΈΠ»ΡΠ½ΡΠΌ ΡΠΎΠΏΠ΅ΡΠ½ΠΈΠΊΠΎΠΌ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° HHVM JIT ΠΎΡ Facebook.
ΠΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ PHP-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ Π΄Π»Ρ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ²
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅:
Π―Π·ΡΠΊ PHP (Hypertext PreProcessor, Β«ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Π³ΠΈΠΏΠ΅ΡΡΠ΅ΠΊΡΡΠ°Β») Π½Π΅ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ Π½Π°Π·ΡΠ²Π°ΡΡ ΡΠ°ΠΌΡΠΌ ΠΌΠΎΡΠ½ΡΠΌ ΠΈ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Π»ΡΠ³ΠΊΠΎΡΡΠΈ Π² ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΠΈ, ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΌΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΠΠ ΠΈ Π²ΡΡΠΎΠΊΠΎΠΉ Π°Π΄Π°ΠΏΡΠΈΠ²Π½ΠΎΡΡΠΈ, ΠΎΠ½ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠ΅Π³ΠΎΠ΄Π½Ρ Π΄Π»Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π° Π»ΡΠ±ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ².
PHP ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² 80% ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΡΠ°ΠΉΡΠΎΠ² ΠΡΠ΅ΠΌΠΈΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ. Π ΡΠΎΠΌ ΡΠΈΡΠ»Π΅, Π² ΡΠ°ΠΊΠΈΡ ΠΌΠ΅Π³Π°-ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ , ΠΊΠ°ΠΊ Facebook, Wikipedia ΠΈ Google. ΠΠ° Π½ΡΠΌ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠΎΠΌ (CMS), Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½Π΅ΠΉΡΡΡ WordPress.
ΠΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ PHP ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ Π±Π΅Π· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² PHP-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ β ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ². Π‘ ΡΡΠΎΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΠΈ ΡΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°ΠΉΡΠΎΠ² ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ Π² ΡΠ°Π·Ρ.
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΎΠ±Π·ΠΎΡΠ΅ ΠΌΡ ΠΊΡΠ°ΡΠΊΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΎΠ±ΡΠΈΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ Π²ΡΠ±ΠΎΡΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΠΈ ΡΠ°ΡΡΠΊΠ°ΠΆΠ΅ΠΌ ΠΏΡΠΎ Π»ΡΡΡΠΈΠ΅ PHP-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ
Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ (framework, Β«ΠΊΠ°ΡΠΊΠ°ΡΒ», Β«ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡΒ») β ΡΡΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠ°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΎΠ±ΡΠ°Π½Ρ Π΅Π³ΠΎ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ. Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΠ°ΠΉΡΠΎΠ², ΡΠ΅ΡΠ²ΠΈΡΠΎΠ². Π§ΡΠΎΠ±Ρ Π½Π΅ ΠΏΠΈΡΠ°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Ρ Π½ΡΠ»Ρ, Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΏΡΠΎΡΠ΅ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ Π³ΠΎΡΠΎΠ²ΡΠΌ ΡΠ°Π±Π»ΠΎΠ½Π°ΠΌ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈ ΡΠΎΡΠΌΠΈΡΡΡΡ ΡΠ°Π±ΠΎΡΡΡ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°.
Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ Π΅ΡΡΡ Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ β Java, JavaScript, Python, Ruby, PHP. ΠΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ PHP-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡΡ ΠΏΠΎΡΡΡΠ½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Π±Π΅ΠΊΡΠ½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.
ΠΠΎΡΡΠΎΠΈΠ½ΡΡΠ²Π° PHP-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ²
ΠΠ°ΠΊ Π²ΡΠ±ΡΠ°ΡΡ
ΠΠ°ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ PHP-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ ΡΠ°ΠΌΡΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΌ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΎΠ² ΠΈ ΡΠ΅Π»Π΅ΠΉ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΡΠ΄ Π±Π°Π·ΠΎΠ²ΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ.
Π Π΅ΠΉΡΠΈΠ½Π³ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ²
Laravel
ΠΡΠ° Π±Π΅ΡΠΏΠ»Π°ΡΠ½Π°Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π²Ρ ΠΎΠ΄ΠΈΡ Π² ΡΠΈΡΠ»ΠΎ ΡΠ°ΠΌΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ PHP-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ², Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ²ΠΎΠ΅ΠΌΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΌΡ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΠΈ ΠΏΡΠΎΡΡΠΎΡΠ΅ ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΡ. ΠΠΎΠ²ΠΈΡΠΊΠ°ΠΌ, ΡΠ΅ΡΠΈΠ²ΡΠΈΠΌ ΠΎΡΠ²Π°ΠΈΠ²Π°ΡΡ Π΅Π³ΠΎ Π²ΠΏΠ΅ΡΠ²ΡΠ΅, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ ΠΊΠΎΠΌΡΠΎΡΡΠ½ΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ ΠΏΠΎΡΡΠ°ΠΏΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ³ΡΡΠΆΠ΅Π½ΠΈΡ Π² Π½ΠΈΠ²Ρ Π²ΡΠ±-Π΄Π΅Π²Π΅Π»ΠΎΠΏΠΌΠ΅Π½ΡΠ° ΠΏΠΎ ΡΠΈΡΠΎΡΠ°ΠΉΡΠ΅ΠΌΡ ΡΠΏΠ΅ΠΊΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ: Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΎΠ±ΡΠΊΠ½ΠΎΠ²Π΅Π½Π½ΡΡ ΡΡΡΠΈΠ½Π½ΡΡ Π·Π°Π΄Π°Π½ΠΈΠΉ Π΄ΠΎ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ ΡΠ°ΠΊΠΈΠΌ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΠΎΠΌ Laravel ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ ΡΠ΅Π»ΡΠΌ ΡΠΏΠ΅ΠΊΡΡΠΎΠΌ Π·Π°Π΄Π°Ρ Π±ΡΠΊΡΠ½Π΄Π° Π΄Π°ΠΆΠ΅ Π±Π΅Π· ΠΎΡΠ½ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠΏΡΡΠ°.
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ Laravel
Yii
ΠΠ±Π΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ PHP-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Yii ΡΡΠΈΡΠ°Π΅ΡΡΡ Π»ΠΈΠ΄Π΅ΡΠΎΠΌ ΠΏΠΎ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈ ΡΠ°ΡΡΠΎ Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ Π΄Π»Ρ Π²ΡΡΠΎΠΊΠΎΠ½Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠ΅Π»ΠΈΠ·Π° Π² 2008 Π³ΠΎΠ΄Ρ, ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎ ΡΠ°Π·Π²ΠΈΠ²Π°Π»ΡΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ Π»Π΅Ρ. Yii ΡΠ°ΡΡΠΎ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π² ΡΠΎΠΏ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² PHP, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠ°Π·Π²ΠΈΡΠΎΠΌΡ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΡΠ°ΡΡΡ ΠΊΠΎΡΠΎΡΡΡ β ΡΡΡΡΠΊΠΎΠ³ΠΎΠ²ΠΎΡΡΡΠΈΠ΅.
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ Yii
CodeIgniter
ΠΡΠΎΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΡΠ»Π΅Π³Π°Π½ΡΠ½ΠΎΡΡΡΡ ΠΊΠΎΠ΄Π° ΠΈ ΠΏΡΠΎΡΡΠΎΡΠΎΠΉ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ. ΠΠ΅Π³ΠΊΠΎΡΡΡ Π² ΠΎΠ±ΡΡΠ΅Π½ΠΈΠΈ ΠΈ ΡΠ²ΠΎΠ±ΠΎΠ΄Π° ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΎΡΠ»ΠΈΡΠ½ΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ Π΄Π»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ ΡΡΠ°ΡΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ°. CodeIgniter ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ PHP-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΌΠ°Π»ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡ.
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ CodeIgniter
Symfony
ΠΠΎΠΌΠΈΠΌΠΎ Π·Π²ΡΡΠ½ΠΎΠ³ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΡ, ΡΡΠΎΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ Π³ΠΈΠ±ΠΊΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΠΎΠΌ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π½Π° ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π΅ ΠΊ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠ±ΠΈΡΠ°ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ·ΡΠΊΠ° PHP Π»ΠΈΠ±ΠΎ ΠΎΠΏΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠΎΠΉ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ.
ΠΡΠΎΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π±ΡΠ΄Π΅Ρ ΡΠ±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, ΡΠ΅Π½ΡΡΠ΅Π³ΠΎ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΡΡΡ ΠΈ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ². ΠΠ΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ Π½Π° Symfony Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ½Π° Π²Π½ΡΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ»ΠΎΠΆΠ½ΡΡ Π·Π°Π΄Π°Ρ ΡΡΠΎΠ²Π½Ρ ΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΡ.
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ Symfony
Phalcon PHP
ΠΠΎΠ»Π½ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½Π°Ρ PHP-ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠVC. Π‘ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ Π² 2012 Π³ΠΎΠ΄Ρ, Phalcon Π±ΡΠ» Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘ ΠΈ Π‘++. Π Π΄Π°Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΈ Π²Π΅ΡΡΠΈΡ, ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°Π½Π½Π°Ρ Π½Π° Zephir.
Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° ΠΏΠΎΡΡΡΠΎΠ΅Π½ Π½Π° ΠΎΠΏΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ PHP-ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄ΠΎΡΡΠΈΠ³Π°ΡΡ ΡΠ°ΠΌΡΡ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΡΡ ΡΠ΅Π»Π΅ΠΉ Π² Π±Π΅ΠΊΡΠ½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅. ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° ΠΊΠ°ΠΊ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ, Π½ΠΎ Π³ΠΎΡΠ°Π·Π΄ΠΎ Ρ ΡΠΆΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π°.
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ Phalcon
CakePHP
ΠΠ΅Π³ΠΊΠΈΠΉ ΡΡΠΈΠ»Ρ ΠΈ ΡΠ»Π΅Π³Π°Π½ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ ΡΠ²Π»ΡΡΡΡΡ ΡΠΈΠ»ΡΠ½ΡΠΌΠΈ ΡΡΠΎΡΠΎΠ½Π°ΠΌΠΈ ΡΡΠΎΠ³ΠΎ Β«ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠ°ΡΠΊΠ°ΡΠ°Β». Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΏΡΠΎΡΡΠ°Ρ ΠΈ Π»Π΅Π³ΠΊΠ°Ρ Π² ΠΈΠ·ΡΡΠ΅Π½ΠΈΠΈ ΡΡΠ΅Π΄Π°, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ CRUD. CakePHP Π±ΡΠ΄Π΅Ρ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎ Π²ΠΏΠ΅ΡΠ°ΡΠ»ΡΡΡΠΈΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΡΠ°ΠΉΡΠΎΠ².
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ CakePHP
Zend Framework
ΠΠΈΠ±ΠΊΠ°Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΡ Π΄Π΅Π»Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ Π²ΡΡΠΎΠΊΠΎΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ΄ΠΈΠ½ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΌΠΈΠ½ΡΡΠΎΠ² PHP-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° β ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ Π² ΠΈΠ·ΡΡΠ΅Π½ΠΈΠΈ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΠΎΡΠΏΡΠ³Π½Π΅Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ². ΠΠ΄Π½Π°ΠΊΠΎ, ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠ΅ΠΉ Π²Π½Π΅ΡΠ½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΡΡΠΎΡΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»ΠΈΡΡ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ Zend Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΈΡΡΠ°Π»ΡΠ½ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅.
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ Zend Framework
Fuel PHP
ΠΡΠΎ Π³ΠΈΠ±ΠΊΠΈΠΉ ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ PHP-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°ΡΠ°Π»ΠΈ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π² 2011, Π° ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π·Π°ΠΏΡΡΠΊ ΠΏΡΠΎΠΈΠ·Π²Π΅Π»ΠΈ Π² 2014 Π³ΠΎΠ΄Ρ. ΠΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° MVC, Π½Π°Π·ΡΠ²Π°ΡΡΠ°ΡΡΡ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠΊΠΎΠΉ β HMVC.
ΠΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΠ°Π½Π΅Ρ ΠΏΠΎΠ΄ΡΠΏΠΎΡΡΠ΅ΠΌ Π΄Π»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ Π½Π°ΡΠ°Π»Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ Fuel PHP
PHPixie
ΠΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ, Π±ΡΡΡΡΡΠΉ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉ PHP-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ HMVC. ΠΠ΅ΡΠ²ΡΠΉ Π²ΡΠΏΡΡΠΊ Π±ΡΠ» ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π² 2012 Π³ΠΎΠ΄Ρ. ΠΠ½ Π±ΡΠ» ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ ΠΏΠΎΠ΄ ΡΠ°ΠΉΡΡ ΡΠΎΡΠΌΠ°ΡΠ° read-only (Β«ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡΒ»).
Π ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌ PHPixie ΠΎΡΠ½ΠΎΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΈ Π²Π²ΠΎΠ΄Π°, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ, Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΈ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. ΠΠ· ΠΌΠΈΠ½ΡΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΡ ΡΠ°Π·Π²ΠΈΡΠΎΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΈ ΠΌΠ°Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΠΎΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°.
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ PHPixie
Slim Framework
ΠΡΠΎ Π΅ΡΠ΅ ΠΎΠ΄Π½Π° ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ½Π°Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΈΠ·Π²Π΅ΡΡΠ½Π° ΠΊΠ°ΠΊ ΠΌΠΈΠΊΡΠΎΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ PHP. ΠΠ½Π° ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΈ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΎΡΠ»ΠΈΡΠ°ΡΡΠΈΡ ΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΡΠΎΡΡΠΎΡΠΎΠΉ ΠΈ Π²ΡΡΠΎΠΊΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ. Slim Π»Π΅Π³ΠΎΠΊ Π² ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΠΈ, ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΡΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΠΈ ΡΠ°Π·Π²ΠΈΡΠΎΠΉ Π±Π°Π·ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
ΠΡΠΎ ΠΏΡΠΎΡΡΠΎΠΉ PHP-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠΉΠ΄ΡΡ Π΄Π»Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ². Π ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» Π²ΠΊΠ»ΡΡΠ΅Π½Ρ: URL ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ, ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅Π°Π½ΡΠΎΠ² ΠΈ cookie, HHTP ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅.
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ Slim Framework
ΠΡΠ²ΠΎΠ΄
PHP-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ β ΠΈΠ΄Π΅Π°Π»ΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ API ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ Π²ΡΠ΅ΠΌΡ Π½Π° Β«ΡΡΡΠ½ΠΎΠΌΒ» ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π³ΠΎΡΠΎΠ²ΡΡ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ.
ΠΡΠ±ΠΎΡ Π² ΠΏΠΎΠ»ΡΠ·Ρ ΡΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Π±ΡΠ΄Π΅Ρ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°. Π§Π΅ΠΌ ΠΎΠ½ ΠΌΠ°ΡΡΡΠ°Π±Π½Π΅Π΅, ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ. Π‘Π»ΠΎΠΆΠ½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°ΡΡ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π°Π½Π°Π»ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π° PHP-ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, Π΅Π΅ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ ΠΏΠΎ Π²Π΅ΡΡΠΈΡΠΌ PHP, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠΌ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½ΡΡ , ΡΠ΅ΡΡΡΡΠΎΠ΅ΠΌΠΊΠΎΡΡΠΈ, ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΠΈ ΠΈ ΠΊΡΠΈΡΠ΅ΡΠΈΡΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΠ»Ρ ΠΌΠ΅Π½Π΅Π΅ ΠΊΡΡΠΏΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Ρ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ Π±Π°Π»Π°Π½ΡΠΎΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΡ ΡΡΠ΅Π±ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΊ ΡΠ΅ΡΡΡΡΠ°ΠΌ.
Π ΠΊΠ°ΠΊΠΎΠΉ PHP-ΡΡΠ°ΠΉΠΌΠ²ΠΎΡΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π²Ρ? ΠΠ° ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° Π²Ρ Π΅Π³ΠΎ Π²ΡΠ±ΡΠ°Π»ΠΈ? ΠΠ΅Π»ΠΈΡΠ΅ΡΡ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ Π½ΠΈΠΆΠ΅!
Π§ΡΠΎΠ±Ρ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΡΠ°Π±ΠΎΡΠ°Π» Π½Π° ΠΏΡΠ΅Π΄Π΅Π»Π΅ ΡΠ²ΠΎΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ β Π²ΡΠ±ΠΈΡΠ°ΠΉΡΠ΅ Π±ΡΡΡΡΡΠΉ ΠΈ Π½Π°Π΄ΡΠΆΠ½ΡΠΉ VPS ΠΎΡ Eternakhost.