ΠΊΠ°ΠΊ ΠΎΡΠ»Π°ΠΆΠΈΠ²Π°ΡΡ php ΠΊΠΎΠ΄
ΠΡΠ»Π°Π΄ΠΊΠ° php Π² Visual Studio Code (Xdebug, Windows)
Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° php. Visual Studio code ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ°ΠΊΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ PHP Debug (marketplace, github).
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° PHP Debug
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Xdebug
PHP Debug ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ Xdebug. ΠΠ»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Xdebug ΠΏΡΠΎΠΉΠ΄ΠΈΡΠ΅ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅. ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ ΡΠΆΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΠΈ Π½Π°ΡΡΡΠΎΠ΅Π½ ΡΠ΅ΡΠ²Π΅Ρ apache. ΠΠ΄Π΅ΡΡ ΠΈ Π΄Π°Π»Π΅Π΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠΊΠ°Π·Π°Π½Ρ Π΄Π»Ρ Windows. ΠΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ», Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, test.php ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ:
ΠΡΠΊΡΡΡΡ Π΅Π³ΠΎ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΠΈ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ. ΠΡΡΠ³ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±:
ΠΡΠΎΠΌΠ΅ ΡΡΠΎΠ³ΠΎ, Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π½ΠΈΠΆΠ΅ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ. ΠΡΠΎΠ³ΠΎΠ²ΠΎΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊΠΈΠΌ:
ΠΠ°ΠΊ Π²Ρ ΡΠΆΠ΅, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ³Π°Π΄Π°Π»ΠΈΡΡ, Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ XAMPP.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π‘ Π²Π΅ΡΡΠΈΠ΅ΠΉ Xdebug 2.5 ΠΈ Π²ΡΡΠ΅ Visual Studio code Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. ΠΠΎΡΡΠΎΠΌΡ Π²ΡΠ±ΠΈΡΠ°ΠΉΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π²Π°ΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠΈ php ΡΠ°ΠΉΠ» *.dll.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Visual Studio code
ΠΡΠ·ΠΎΠ²ΠΈΡΠ΅ ΠΏΠ°Π½Π΅Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ (1) ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ Π½Π° ΠΈΠΊΠΎΠ½ΠΊΡ Ρ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΎΠΉ ΡΠ΅ΡΡΠ΅ΡΠ΅Π½ΠΊΠΎΠΉ (2).
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° PHP Debug Π½Π° ΡΡΠΎΠΌ ΠΎΠΊΠΎΠ½ΡΠ΅Π½Π°.
ΠΡΠ»Π°Π΄ΠΊΠ° php Π² Visual Studio code
ΠΡΠΊΡΠΎΠΉΡΠ΅ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅\ΡΠ°ΠΉΡ. ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΏΠ°ΠΏΠΊΡ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π² Visual Studio code. Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π² Π½ΡΠΆΠ½ΡΡ ΡΠ°ΠΉΠ»Π°Ρ ΠΈ ΡΡΡΠΎΠΊΠ°Ρ ΡΠΎΡΠΊΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ. ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΏΠ°Π½Π΅Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Listen for Xdebug (1). ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ Π·Π°ΠΏΡΡΠΊΠ° (2).
ΠΠ±Π½ΠΎΠ²ΠΈΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΠΈ Π½Π°ΡΠ»Π°ΠΆΠ΄Π°ΠΉΡΠ΅ΡΡ.
ΠΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π° PHP
Π― ΠΏΠΎΠ»ΡΠ·ΡΡΡΡ ΡΡΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π° PHP ΡΠΆΠ΅ Π»Π΅Ρ, Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅, 10. Π Π΅ΡΡ Π½ΠΈ ΡΠ°Π·Ρ ΠΎΠ½ ΠΌΠ΅Π½Ρ Π½Π΅ ΠΏΠΎΠ΄Π²ΠΎΠ΄ΠΈΠ». ΠΠΎΡΠ΅ΠΌΡ Ρ ΡΠ΅ΡΠΈΠ» ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΡΡΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ Ρ Π²Π°ΠΌΠΈ? ΠΠ°Π²Π΅ΡΠ½ΠΎΠ΅ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Π±ΠΎΠ»ΡΠ½ΠΎ ΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π±Π΅ΡΡΡ ΠΎΡΠΊΡΠ΄Π°-ΡΠΎ ΠΊΠΎΠ΄, ΠΈΠ»ΠΈ ΠΏΠΈΡΡΡ ΠΏΡΠΈΠ»ΠΈΡΠ½ΡΡ ΠΏΠΎΡΡΡΠ½ΠΊΡ ΡΠ°ΠΌΠΈ, ΠΎΠ½ (Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ) Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈ ΠΎΠ½ΠΈ Π½Π°ΡΠΈΠ½Π°ΡΡ Ρ Π°ΠΎΡΠΈΡΠ½ΠΎ ΠΌΠ΅Π½ΡΡΡ Π²ΡΡ ΠΏΠΎΠ΄ΡΡΠ΄, ΠΏΡΡΠ°ΡΡΡ ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ βΠ½Π°ΡΡΠΏΠ°ΡΡβ ΡΠΎ ΠΌΠ΅ΡΡΠΎ, Π³Π΄Π΅ ΡΠ°ΠΈΡΡΡ ΠΎΡΠΈΠ±ΠΊΠ°. ΠΠΎ ΡΡΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΠΏΡΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ. ΠΡΠ°ΠΊ, Π²ΠΎΡ ΡΡΠΎ Ρ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ.
ΠΠ»Π°Π²Π½ΠΎΠ΅ ΠΏΡΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΈ ΠΏΠΎΠΈΡΠΊΠ΅ βΠ±Π°Π³ΠΎΠ²β β ΡΡΠΎ ΡΠ΅ΡΠΏΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΡΡ . ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ Π±ΡΠ΄Π΅ΡΠ΅ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ, ΡΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ, Π² ΠΈΡΠΎΠ³Π΅ Π²Ρ Π·Π°ΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ ΠΈ Π½ΠΈ ΠΊ ΡΠ΅ΠΌΡ Π½Π΅ ΠΏΡΠΈΠ΄ΡΡΠ΅.
Π‘Π°ΠΌ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΠΌΠ΅ΡΠΎΠΊ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΡ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅. ΠΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π½Π°ΡΠ°ΡΡ Π²ΡΠ΅Π³ΠΎ Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ΅ΡΠΊΠΈ.
ΠΠ°ΠΆΠ΄Π°Ρ ΠΌΠ΅ΡΠΊΠ° Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ
ΠΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΠΊΠΎΠ΄Π° PHP, Π΄ΠΎΠΉΠ΄Ρ Π΄ΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΌΠ΅ΡΠΊΠΈ ΡΠ΄Π΅Π»Π°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅: Π²ΡΠ²Π΅Π΄Ρ β1β Π² Π±ΡΠ°ΡΠ·Π΅Ρ, ΠΎΠ½ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΏΡΠ΅ΠΊΡΠ°ΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄ΠΎΡΠ»ΠΎ Π΄ΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π° ΡΠΊΡΠ°Π½Π΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΠΊΠ° ΠΈ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅, ΡΡΠΎ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅. ΠΠ΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ β Π΄ΠΎΡ ΠΎΠ΄ΠΈΡ Π»ΠΈ Π΄ΠΎ ΡΡΠΎΠΉ ΡΠΎΡΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π΅ ΡΡΠ°Π²ΠΈΡΡ exit(), Π΅ΡΠ»ΠΈ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ ΡΠ²Π΅ΡΠ΅Π½Ρ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΊΠΎΠ΄ Π½Π΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΡΡΡΠ°Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ²ΠΎΠ΄Π° (Π½Π΅Ρ ΡΠ΅ΡΡΠ΅ΡΠ°).
ΠΠ°Π»ΡΠ½Π΅ΠΉΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ:
ΠΠ±ΡΠ΅Π΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ: ΠΏΡΠΎΠ΄Π²ΠΈΠ³Π°ΠΉΡΠ΅ΡΡ ΠΏΠΎ ΠΊΠΎΠ΄Ρ ΠΎΡΠ΅Π½Ρ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, ΡΡΠ°ΡΠ°ΡΡΡ Π½Π΅ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ ΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ°, Π³Π΄Π΅ ΡΠ°ΠΈΡΡΡ Π±Π°Π³. Π‘ΡΠ°ΡΠ°ΠΉΡΠ΅ΡΡ ΡΠ°ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π½ΠΎΠ³ΠΎ Π΄Π΅Π»Π΅Π½ΠΈΡ.
ΠΡΠ²ΠΎΠ΄ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΠΎ ΡΡΠΎ ΡΠΎΠ»ΠΊΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Π΄ΠΎΡΡΠ» ΠΈΠ»ΠΈ Π½Π΅ Π΄ΠΎΡΡΠ» Π΄ΠΎ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-ΡΠΎ ΠΌΠ΅ΡΡΠ°? ΠΠ°Π»ΠΎΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΠΎ. ΠΠ°Π²Π°ΠΉΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΠΆΠΈΠ·Π½ΠΈ!
Π§Π°ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ²Π΅ΡΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠ΅ ΠΊΠΎΠ΄Π°. Π ΡΡΡ Π½Π°ΠΌ ΠΏΡΠΈΠ³ΠΎΠ΄ΡΡΡΡ Π΄Π²Π΅ ΠΌΠΎΡΠ½Π΅ΠΉΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ β print_r() ΠΈ var_dump(). ΠΠΎΡ ΠΊΠ°ΠΊ ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ print_r($var); ΠΈΠ»ΠΈ print_r($obj->var) Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ true ΠΈΠ»ΠΈ false, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ var_dump(). Π’ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΡΡΠ½ΠΈΡΡ ΠΊΠΎΠ΅-ΡΡΠΎ. Π€ΡΠ½ΠΊΡΠΈΡ print_r() ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π±ΡΠ»Π° ΠΏΡΠΈΠ΄ΡΠΌΠ°Π½Π° Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΊΡΠ°ΡΠΈΠ²ΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ°Π·Π½ΡΡ ΡΠΈΠΏΠΎΠ². ΠΡΠΈΡΡΠΌ ΠΎΠ½Π° Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΠΈ ΡΠ΅Π»ΡΠ΅, ΠΈ ΡΡΡΠΎΠΊΠΈ, ΠΈ ΠΌΠ°ΡΡΠΈΠ²Ρ ΠΈ Π΄Π°ΠΆΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ. Π Π²ΠΎΡ true ΠΈ false ΠΎΠ½Π° Π½Π΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡ, ΡΠΎ Π΅ΡΡΡ Π²ΡΠ²ΠΎΠ΄ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ ΡΠ°Π²Π΅Π½ ΠΏΡΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠ΅. Π’ΡΡ Π½Π° ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ var_dump(), ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΠΎΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠΈΠΏ ΡΡΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ var_dump() Π²Π΅Π·Π΄Π΅ Ρ Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ. ΠΡΠ²ΠΎΠ΄, ΠΈΠΌ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ, Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠ°Π½Π½Π΅Π΅, ΡΠ΅ΠΌ Π²ΡΠ²ΠΎΠ΄ ΠΎΡ print_r().
ΠΡΠΎΠ³ΠΎ, Π²ΠΎΡ ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ Π½Π°ΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½Π°Ρ ΠΌΠ΅ΡΠΊΠ°:
ΠΠ±ΡΡΠ½ΠΎ Ρ Π΄ΡΠ±Π»ΠΈΡΡΡ Π½ΠΎΠΌΠ΅Ρ ΠΌΠ΅ΡΠΊΠΈ Π² ΠΎΠ±ΡΠ°ΠΌΠ»Π΅Π½ΠΈΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΡΡΠΎΠ±Ρ Π²ΠΈΠ΄Π΅ΡΡ, Π³Π΄Π΅ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΡΡ Π²ΡΠ²ΠΎΠ΄ ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . ΠΡΠΎ ΡΠ°ΡΡΠΎ Π±ΡΠ²Π°Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ.
ΠΠΎΠΆΠ½ΠΎ Π΅ΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠ°ΠΆΠ΄ΡΠΌ print_r() Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ echo βvar=β; ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ Π³Π΄Π΅ ΠΈ ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ.
ΠΠ°ΠΌΠ΅Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°ΡΡΠΈ ΠΊΠΎΠ΄Π°
ΠΡΠ΅Π½Ρ ΡΠ°ΡΡΠΎ ΠΏΡΠΈ ΠΏΡΠΎΡΠ°ΠΉΠ»ΠΈΠ½Π³Π΅ (Π° Π΅ΡΡ ΡΠ°ΡΠ΅ ΠΏΡΠΈ ΠΏΠΎΠΈΡΠΊΠ΅ βΡΠΎΡΠΌΠΎΠ·ΠΎΠ²β Π² ΠΊΠΎΠ΄Π΅) Π±ΡΠ²Π°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΡΡΠΊΠ° ΠΊΠΎΠ΄Π°.
Π PHP Π΅ΡΡΡ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ microtime(), ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π² ΠΌΠΈΠΊΡΠΎΡΠ΅ΠΊΡΠ½Π΄Π°Ρ . ΠΡΠ»ΠΈ Π΅ΠΉ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ true, ΡΠΎ ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π΅Π³ΠΎ Π² Π²ΠΈΠ΄Π΅ ΡΠΈΡΠ»Π° Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ, ΡΡΠΎ Π½Π°ΠΌ ΠΈ Π½ΡΠΆΠ½ΠΎ.
ΠΠ΄Π΅Ρ ΡΠΏΠΎΡΠΎΠ±Π° Π·Π°ΠΌΠ΅ΡΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΡΡΠΊΠ° ΠΊΠΎΠ΄Π° ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄ Π½Π°ΡΠ°Π»ΠΎΠΌ ΡΡΠΎΠ³ΠΎ ΠΊΡΡΠΊΠ° ΠΈ ΡΡΠ°Π²Π½ΠΈΡΡ Π΅Π³ΠΎ Ρ ΡΠ΅ΠΊΡΡΠΈΠΌ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ Π² ΠΊΠΎΠ½ΡΠ΅ ΠΊΡΡΠΊΠ°. Π’ΠΎ Π΅ΡΡΡ Π²ΠΎΡ ΡΠ°ΠΊ:
ΠΡΠΈ ΡΡΠΎΠΌ ΠΏΠΎΡΠ»Π΅ ΠΌΠ΅ΡΠΊΠΈ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ Π²ΡΠ΅ΠΌΡ, ΠΏΠΎΡΡΠ°ΡΠ΅Π½Π½ΠΎΠ΅ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π² ΡΠ΅ΠΊΡΠ½Π΄Π°Ρ . Π§Π°ΡΡΠΎ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ ΡΡΠΎ-ΡΠΎ ΡΠΈΠΏΠ° ΡΠ°ΠΊΠΎΠ³ΠΎ: 1.233433E-05, ΡΡΠΎ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ½Π°Ρ ΡΠΎΡΠΌΠ° Π·Π°ΠΏΠΈΡΠΈ ΠΎΡΠ΅Π½Ρ ΠΌΠ°Π»ΡΡ ΠΈ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΈΡ ΡΠΈΡΠ΅Π». ΠΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ Π΅Ρ Π² Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΉ Π²ΠΈΠ΄, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΡΡΠ½ΠΊΡΠΈΡ sprintf():
ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΠΊΠΎΠ΄Π°, Π½ΠΎ Π·Π°ΡΠΎ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΡΠ»Π° Π²ΡΠΎΠ΄Π΅ 0.000012, Ρ.Π΅. 12 ΠΌΠΈΠΊΡΠΎΡΠ΅ΠΊΡΠ½Π΄.
ΠΠΎΡ ΠΈ Π²ΡΡ Π½Π° ΡΠ΅Π³ΠΎΠ΄Π½Ρ, Π·Π°Π²ΡΡΠ° Ρ Π½Π°ΠΏΠΈΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΡΠ°ΡΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΠΎΠ± Π΅ΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΡΠΏΠΎΡΠΎΠ±Π΅ ΠΎΡΠ»Π°Π΄ΠΊΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²ΡΠ³ΡΡΠ·ΠΊΠΈ Π»ΠΎΠ³Π° Π² ΡΠ°ΠΉΠ» (Π±ΡΠ²Π°Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π΅ΡΠ»ΠΈ Π½Π΅ Ρ ΠΎΡΠ΅ΡΡΡ Π½Π°ΡΡΡΠ°ΡΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΡΡ ΡΠ°Π±ΠΎΡΡ ΡΠ°ΠΉΡΠ°, ΡΠΎ Π΅ΡΡΡ Π²ΡΠ²ΠΎΠ΄ ΡΠ°Π·Π½ΡΡ ΠΌΠ΅ΡΠΎΠΊ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌ).
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Π½Π΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°ΡΡΡΡ, ΡΡΠΎΠ±Ρ Π½Π΅ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΡΡ ΡΡΠ°ΡΡΡ!
ΠΠ°ΠΌΠΎΠ»Π²ΠΈΠΌ ΡΠ»ΠΎΠ²ΠΎ ΠΎΠ± ΠΎΡΠ»Π°Π΄ΠΊΠ΅ ΠΈ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ [PHP]
ΠΡΠ΅ ΠΈΠ΄Π΅Ρ ΠΎΡ Π»Π΅Π½ΠΈ. ΠΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΡΡΠΆΠΎΠΉ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΏΡΠ°Π²ΠΊΠΈ, ΠΈΠ»ΠΈ ΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ ΡΠΊΡΠΈΠΏΡ ΠΈ ΡΡΠ°Π·Ρ Π½Π΅ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π² Π½Π΅ΠΌ Π΅ΡΠ΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ°ΠΊ Π±ΡΡΡ? Π§ΠΈΡΠ°ΡΡ ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄, Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π³ Π½Π° ΡΠΊΡΠ°Π½ ΠΈΠ»ΠΈ Π² ΡΠ°ΠΉΠ» (var_dump() ΠΈ Ρ.Π΄.) Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ, Π²Π΅Π΄Ρ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΡ Π½Π° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ Π΄Π΅Π½Ρ ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ. ΠΡΠ°ΡΠΊΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Ρ ΡΠ°ΡΡΠΎ Π²ΡΡΡΠ΅ΡΠ°ΡΡΠΈΠ΅ΡΡβ¦
Xdebug Debugger and Profiler Tool β ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ PHP. Π’ΡΠ΅Π±ΡΠ΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ. ΠΠΎΠΆΠ΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ: ΡΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΉ, ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ: ΠΏΡΠΎΡΠ°ΠΉΠ»ΠΈΠ½Π³, Π°Π½Π°Π»ΠΈΠ· ΠΏΠΎΠΊΡΡΡΠΈΡ ΠΊΠΎΠ΄Π°, Π·Π°ΡΠΈΡΠ° ΠΎΡ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ ΡΠ΅ΠΊΡΡΡΠΈΠΈ, ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½Π°Ρ ΠΎΡΠ»Π°Π΄ΠΊΠ° ΡΠΊΡΠΈΠΏΡΠΎΠ². ΠΠ Π΄Π»Ρ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π»ΠΎΠ³ΠΎΠ² xdebug: Webgrind β Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΠΏΡΠΎΡΠ°ΠΉΠ»ΠΈΠ½Π³Π° Xdebug, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° PHP, MacGDBp β Mac OS X ΠΊΠ»ΠΈΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΠ»Π°ΠΆΠΈΠ²Π°ΡΡ PHP ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Xdebug. Linux GUI kcachegrind. ΠΠ΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ. ΠΠ½ΡΠ΅Π³ΡΠΈΡΡΠ΅ΡΡΡ Ρ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ IDE. Π‘ΠΌ Profiling PHP Applications With xdebug. ΠΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΎΠΏΡΠΈΠΈ Π² php.ini:
Π±ΡΠ΄Π΅Ρ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ²ΠΎΠ΄ var_dump() ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ .
Xhprof β ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ PHP ΠΎΡ facebook. Π’ΡΠ΅Π±ΡΠ΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ. ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ±ΠΈΡΠ°ΡΡ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ, Π²ΡΠ΅ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ, ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅. ΠΡΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ PECL. ΠΠΎΡΠΈΡΠ°ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡ [ΡΡΡ]. Π’Π°ΠΊ ΠΆΠ΅ ΠΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠ° php-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ xhprof & FirePHP. ΠΠ· ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² ΡΠΈΠ»ΡΠ½ΠΎ Π½Π΅ Π³ΡΡΠ·ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°Π²ΠΈΡΡ Π½Π° Π±ΠΎΠΉ. ΠΠ΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ.
DBG (PHP Debugger and Profiler) β ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ PHP. Π’ΡΠ΅Π±ΡΠ΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ. ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΡΠ΅ΡΡΠΎΠ²ΠΎΠΌ ΠΈΠ»ΠΈ/ΠΈ ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΠΈ ΠΎΡΠ»Π°ΠΆΠΈΠ²Π°ΡΡ ΡΠΊΡΠΈΠΏΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎ, ΠΈΠ· IDE ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ. ΠΠ»Π°ΡΠ½Π°Ρ/Π±Π΅ΡΠΏΠ»Π°ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΠΈ.
ZendDebug β ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ PHP, Π²Ρ ΠΎΠ΄ΠΈΡ Π² ΡΠΎΡΡΠ°Π² Zend Studio (ΠΏΠ»Π°ΡΠ½Π°Ρ IDE). Π’ΡΠ΅Π±ΡΠ΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ. ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΅ ΡΠΎΠΆΠ΅, ΡΡΠΎ ΠΈ xdebug, GUI Π² IDE Zend Studio ΠΈΠ»ΠΈ Zend Server. ΠΠ»Π°ΡΠ½ΡΠΉ. Π§ΡΡΡ Π½ΠΈΠΆΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ.
Memtrack β ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ PHP. ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΊΠ°ΡΡ ΡΡΠ΅ΡΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ. Π£Π΄ΠΎΠ±Π½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΠΊΡΠΈΠΏΡΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΡΠ΅ ΠΏΠΎ ΠΊΡΠΎΠ½Ρ ΠΈΠ»ΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΄Π΅ΠΌΠΎΠ½Π°. ΠΠ΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ. Π‘ΠΌ. [ΡΡΡ]
APD Advanced PHP debugger β ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ PHP. Π‘Π»Π°Π±ΡΠΉ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½Ρ xdebug, Π½ΠΎ ΠΈΠΌΠ΅Π΅Ρ Π² ΡΠ΅Π±Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ memtrack. ΠΠ»ΠΎΡ ΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΡΠ΅ΡΡΡ Ρ IDE, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΈΠΌΠ΅Π΅Ρ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ (ΡΠΌ. [ΡΡΡ]). ΠΠ΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ.
FirePHP β ΠΊΠ»Π°ΡΡ, Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° php + ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ FireFox. ΠΠ°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΡΡΠ»Π°ΡΡ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ Firebug Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΠ·ΠΎΠ²Π° php ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ². ΠΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎΡΡΠ»Π°Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π· Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ X-FirePHP-Data, ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ Π½Π΅ ΠΏΠ΅ΡΠ΅ΡΠ΅ΠΊΠ°ΡΡΡ Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠΎΠΌ ΡΡΡΠ°Π½ΠΈΡ. ΠΠ΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ. Π‘ΠΌ. ΠΡΠ»Π°Π΄ΠΊΠ° PHP ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ Firebug
php-console β Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° php + ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Google Chrome. ΠΠ½Π°Π»ΠΎΠ³ FirePHP, ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Google Chrome, Π½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ Π΄ΡΡΠ³ΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΠΎΠΌ. ΠΠ΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ. Π‘ΠΌ. php-console
PHP_Debug ΠΊΠ»Π°ΡΡ, Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° php. ΠΠΎΠΌΠΎΠ³Π°Π΅Ρ Π² ΠΎΡΠ»Π°Π΄ΠΊΠ΅ PHP ΠΊΠΎΠ΄Π°, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ°, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ Π²ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ, watch ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅β¦ ΠΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ°, ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΏΠΎ Π΅Π³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΏΠΎΡΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° Π² Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ. ΠΠ΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ.
ΠΡΠ»Π°Π΄ΡΠΈΠΊΠΈ Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ CMS/CMF/Framework. ΠΡ Π½Π΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌ, Ρ.ΠΊ. Π·Π°ΡΠ°ΡΡΡΡ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΡ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Ρ ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΡ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΡ ΠΈΠ·Π²Π½Π΅ (IDE) ΠΈΠ»ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π±Π΅Π· Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠ²ΠΎΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°Ρ .
ΠΠ»Ρ ΡΠ±ΠΎΡΠ° ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° ΡΠ·ΠΊΠΈΡ ΠΌΠ΅ΡΡ Π² Π²Π°ΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΠ° ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Ρ ΡΠ°Π½Π΅Π½ΠΈΠΈ syslog, ΡΠΌ [ΡΡΡ].
ΠΠ΅ΡΠ½Π΅ΠΌΡΡ ΠΊ ZendDebug. Π’Π°ΠΊ ΠΊΠ°ΠΊ Ρ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΡΡΡΡ Zend Studio, ΡΠΎ ΠΌΠ½Π΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΠΎ Ρ Π½ΠΈΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΠ°Π·Ρ ΠΏΠΎΠ½ΡΡΡ Ρ ΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ°, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΡ ΠΏΠΎ ΠΊΠΎΠ΄Ρ ΠΈΠ· IDE. ΠΠ΅ Π½ΡΠΆΠ½Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΠΊΡΠΎΠΌΠ΅ IDE. ΠΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ, ΡΠ°ΠΊ ΡΠΊΠ°Π·Π°ΡΡ Π½Π°ΡΡΡΠΎΠΈΠ» ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΠΈ ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡΡ.
ΠΡΠ»Π°Π΄ΠΊΠ° ΠΈ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΊΡΠΈΠΏΡΠΎΠ² Π² Zend Studio Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ Π΄Π²ΡΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ xdebug ΠΈΠ»ΠΈ ZendDebug. Π’ΠΎΠ»ΡΠΊΠΎ Π²ΠΎΡ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΡΠ° Ρ xdebug Ρ ΠΌΠ΅Π½Ρ Π½Π΅ Π·Π°ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ, ΠΏΠΈΡΠ΅Ρ ΡΡΠΎ Π½Π΅Π»ΡΠ·Ρ ΡΠ°ΠΊ β ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡΠ»Π°Π΄ΠΊΠ°.
ΠΡΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΎΡΠ»Π°Π΄ΠΊΡ ΠΊΠΎΠ΄Π° ΠΏΠΈΡΠ°Π»ΠΈ Π΅ΡΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π° Zend Studio 5.5 [ΡΡΡ]. Π‘ ΡΠ΅Ρ Π²ΡΠ΅ΠΌΠ΅Π½ ΠΌΠ°Π»ΠΎ ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ. ΠΠΎ Ρ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΡΡ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, ΠΊΠΎΠ³Π΄Π° web ΡΠ΅ΡΠ²Π΅Ρ ΠΈ ΠΎΡΠ»Π°ΠΆΠΈΠ²Π°Π΅ΠΌΡΠΉ ΠΊΠΎΠ΄ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅. Π§Π°ΡΡΠΎ ΡΠ°ΠΊΠΈΠ΅ ΠΏΠ΅ΡΠΎΡΠ½ΠΈΡΡ Π·Π°ΠΊΡΡΡΡ ΠΈΠ·Π²Π½Π΅, Π° ΠΎΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½ΡΠΆΠ½ΡΠ΅ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΡΡΡ. ΠΠΎ Π΅ΡΠ»ΠΈ ΠΊ ΡΠ°ΠΊΠΎΠΉ ΠΏΠ΅ΡΠΎΡΠ½ΠΈΡΠ΅ Π΅ΡΡΡ Π΄ΠΎΡΡΡΠΏ ΠΏΠΎ SSH, ΡΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ZendDebug Π²ΡΠ΅ ΡΠ°ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ, Π½Π΅ ΠΌΠ΅ΡΠ°Ρ ΡΠ°Π΅ΡΠ²ΠΎΠ»Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ²ΠΎΡ ΡΡΠ½ΠΊΡΠΈΡ.
ΠΠ°Π±Π΅Π³Π°Ρ Π²ΠΏΠ΅ΡΠ΅Π΄ ΠΎΡΠΌΠ΅ΡΡ, ΡΡΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ SSH ΡΡΠ½Π½Π΅Π»Ρ. ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎ ΡΠΎΠΌ, Π·Π°ΡΠ΅ΠΌ SSH ΡΡΠ½Π½Π΅Π»Ρ Π½ΡΠΆΠ΅Π½ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Zend Studio ΠΈΠ½ΠΈΡΠΈΠΈΡΡΠ΅Ρ ΡΠ΅Π°Π½Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ ΠΎΡΠ»Π°Π΄ΠΊΠΈ, ΠΎΡΠΏΡΠ°Π²ΠΈΠ² HTTP Π·Π°ΠΏΡΠΎΡ Π½Π° ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ. ΠΡΠΎΡ Π·Π°ΠΏΡΠΎΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π°Π΄ΡΠ΅ΡΠ° (IP-Π°Π΄ΡΠ΅Ρ ΠΈ Π½ΠΎΠΌΠ΅Ρ ΠΏΠΎΡΡΠ°), ΠΊΠΎΡΠΎΡΡΠΉ ZendDebug (ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ Zend Studio, ΡΡΠΎΠ±Ρ ΡΠ΅ΡΡΠ°Π½ΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΠΎΡΠ»Π°Π΄ΠΊΠ΅. ΠΡΡΠ°ΡΠΈ, ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΌ ΡΠ΅Π°Π½Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ°ΠΊ ΠΈΠ· IDE, ΡΠ°ΠΊ ΠΈ ΠΈΠ· Π±ΡΠ°ΡΠ·Π΅ΡΠ° ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ Π²ΠΌΠ΅ΡΡΠ΅ Ρ Zend Studio, Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ.
ΠΠ±ΡΡΠ½Π°Ρ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½Π°Ρ ΡΠ΅ΡΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΌΠ΅ΡΡΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ΄, WEB ΡΠ΅ΡΠ²Π΅Ρ ΠΈ IDE Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅.
ΠΠΎ Π·Π°ΡΠ°ΡΡΡΡ WEB ΡΠ΅ΡΠ²Π΅Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ Ρ IDE Π±ΡΠ°Π½Π΄ΠΌΠ°ΡΡΡΠ°ΠΌΠΈ, ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΎΡΠ°ΠΌΠΈ, ΠΏΡΠΎΠΊΡΠΈ-ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ Ρ.Π΄. Π’ΡΡ-ΡΠΎ ΠΈ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡ SSH ΡΡΠ½Π½Π΅Π»Ρ.
Π ΡΠ»ΡΡΠ°Π΅ Ρ ΡΡΠ½Π½Π΅Π»Π΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ΅Π°Π½ΡΠ° ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π΄Π²ΡΡ
ΠΎΡΠ½ΠΎΠ²Π½ΡΡ
ΡΡΠ°ΠΏΠΎΠ²:
β ΡΠΎΠ·Π΄Π°Π½ΠΈΡ SSH ΡΡΠ½Π½Π΅Π»Ρ;
β Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Zend Debugger, Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΡΠ°ΡΠΈΠΊΠ° ΡΠ΅ΡΠ΅Π· SSH ΡΡΠ½Π½Π΅Π»Ρ.
Π‘Ρ
Π΅ΠΌΠ° ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΠΎΠΉ ΡΠ΅ΡΡΠΈΠΈ ΡΠ΅ΡΠ΅Π· SSH ΡΡΠ½Π½Π΅Π»Ρ ΠΏΡΠΈΠΌΠ΅Ρ Π²ΠΈΠ΄:
ΠΠ±ΡΡΠ½Π°Ρ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½Π°Ρ ΡΠ΅ΡΡΠΈΡ ΡΠ΅ΡΠ΅Π· SSH ΡΡΠ½Π½Π΅Π»Ρ
Zend Studio, ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ ΠΏΠΎΡΡ 10137. ΠΠ³ΠΎ ΠΈ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ Π΄Π°Π»Π΅Π΅. ΠΠΎΠΆΠ½ΠΎ Π½Π°Π·Π½Π°ΡΠΈΡΡ ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΡΡ, Π΅ΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ SSH ΡΡΠ½Π½Π΅Π»Ρ Π² Linux ΠΈΠ»ΠΈ Mac OS X ΠΌΠΎΠΆΠ½ΠΎ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅:
ssh :127.0.0.1: @ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ SSH ΡΡΠ½Π½Π΅Π»Ρ Π² Microsoft Windows, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ PuTTY. ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ SSH ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΡΠ½Π½Π΅Π»Ρ.
Π‘ΠΎ ΡΡΠΎΡΠΎΠ½Ρ IDE ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅, ΡΡΠΎ ΡΠ»ΡΡΠ°ΡΡΡΡ ΠΏΠΎΡΡ 10137 ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ IP Π°Π΄ΡΠ΅Ρ 127.0.0.1
ΠΡΠ°ΠΊΡΠΈΠΊΠ° ΡΠ΅Π½ΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ°ΡΠΈΠΊΠ° Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡ ΠΈ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ ΡΠ΅Π»Π΅ΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΡΠΈΠ»ΠΈΡΠ°ΠΌΠΈ Π΄Π΅Π»Π°ΡΡ SQL-Π΄Π°ΠΌΠΏΡ Π‘Π£ΠΠ, ΠΊΠΎΠ³Π΄Π° ΡΠ΄Π°Π»Π΅Π½Π½Π°Ρ Π±Π°Π·Π° ΡΠ°Π·ΡΠ΅ΡΠ°Π΅Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Ρ 127.0.0.1 ΠΈ Ρ.Π΄.
ΠΡΠΌΠ°Ρ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° Π²ΡΡΠ΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΉΡΠΈ ΡΠ΅Π±Π΅ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ Π΄Π΅Π½Ρ. Π ΡΡΠΎ Π±Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΈΠ½ΠΎΡΠΈΠ»Π° Π΅ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΄ΠΎΠ²ΠΎΠ»ΡΡΡΠ²ΠΈΡ, Π° Π½Π° Π²ΠΎΠΏΡΠΎΡ β Β«Π§ΡΠΎ ΡΠ»ΡΡΠΈΠ»ΠΎΡΡ? ΠΠΎΡΠ΅ΠΌΡ Π»Π΅ΠΆΠΈΠΌ?Β», Π±ΡΠ» Π²ΡΠ΅Π³Π΄Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΉ ΠΎΡΠ²Π΅Ρ.
ΠΡΠΈΡΡΠ½ΠΎΠΉ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ² Π±Π΅Π· ΠΎΡΠΈΠ±ΠΎΠΊ, ΡΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅.
ΠΡΠ»Π°Π΄ΠΊΠ° β PHP: ΠΡΠ½ΠΎΠ²Ρ
Π’ΠΈΠΏΡ ΠΎΡΠΈΠ±ΠΎΠΊ
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΡΠ΅ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ β ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅. ΠΠ½ΠΈ ΡΠ²ΡΠ·Π°Π½Ρ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΊΠΎΠ΄ Π·Π°ΠΏΠΈΡΠ°Π½ Π½Π΅Π²Π΅ΡΠ½ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π°Π±ΡΡΠ° ΡΠΎΡΠΊΠ° Ρ Π·Π°ΠΏΡΡΠΎΠΉ Π² ΠΊΠΎΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ. Π Π²ΡΠ²ΠΎΠ΄Π΅ ΡΠ°ΠΊΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ ΡΡΠ°Π·Ρ parse error ΠΈ syntax error. ΠΠ»Ρ ΠΈΡ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΊΡΡΡΡ ΡΠΎ ΠΌΠ΅ΡΡΠΎ Π² ΠΊΠΎΠ΄Π΅, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ°, ΠΈ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ Π½Π° Π½Π΅Π³ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ.
ΠΡΠ΅ ΠΎΠ΄Π½Π° Π±ΠΎΠ»ΡΡΠ°Ρ Π³ΡΡΠΏΠΏΠ° ΠΎΡΠΈΠ±ΠΎΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π Π½ΠΈΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡΠ½ΠΎΡΡΡΡΡ:
ΠΡΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΡΡΠ΄Π½Π΅Π΅, ΡΠ΅ΠΌ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅. ΠΠ±ΡΡΠ½ΠΎ ΠΎΠ½ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ Π² Π΄ΡΡΠ³ΠΎΠΌ, Π±ΠΎΠ»Π΅Π΅ ΡΠ°Π½Π½Π΅ΠΌ Π²ΡΠ·ΠΎΠ²Π΅.
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠΈΠΏ ΠΎΡΠΈΠ±ΠΎΠΊ β Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ. ΠΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π±ΡΠ²Π°Π΅Ρ ΠΊΡΠ°ΠΉΠ½Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ, Π½ΠΎ Π²ΡΠ΄Π°Π΅Ρ Π½Π΅Π²Π΅ΡΠ½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ. ΠΡΠΈΡΠ΅ΠΌ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΡΠ΄Π°Π΅Ρ Π½Π΅Π²Π΅ΡΠ½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π½Π΅ Π²ΡΠ΅Π³Π΄Π°, Π° ΡΠΎΠ»ΡΠΊΠΎ Π»ΠΈΡΡ Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ . Π ΠΏΠΎΠ΄Π°Π²Π»ΡΡΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΊΡΠΎΠ΅ΡΡΡ Π² Π½Π΅Π²Π΅ΡΠ½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠ΅ΡΠ΅ΠΏΡΡΠ°Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, ΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π²ΡΡΠΈΡΠ°Π½ΠΈΠ΅.
ΠΡΠ»Π°Π΄ΠΊΠ°
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΎΡΠ»Π°Π΄ΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π½ΠΎ ΠΊΠ°ΠΊΠΎΠΉ Π±Ρ ΡΠΏΠΎΡΠΎΠ± Π²Ρ Π½ΠΈ Π²ΡΠ±ΡΠ°Π»ΠΈ, ΠΎΠ±ΡΠ°Ρ ΠΈΠ΄Π΅Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ Π°Π½Π°Π»ΠΈΠ·Ρ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΠ΅Π½ΡΡΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠ΄Π°.
Π ΡΡΠΎΠΌ ΠΊΠΎΠ΄Π΅ Π΄ΠΎΠΏΡΡΠ΅Π½Π° ΠΎΡΠΈΠ±ΠΊΠ°. ΠΡ Π΅Π΅ Π²ΠΈΠ΄ΠΈΡΠ΅? ΠΡΠ»ΠΈ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡΡΠ°ΡΠ°ΡΡΡΡ, Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, Π½ΠΎ Π½Π° ΡΡΠΎ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π½Π°Π΄ΠΎ Π½Π°Π΄Π΅ΡΡΡΡΡ. ΠΠΎΠ²ΠΈΡΠΊΠΈ ΡΠ°ΡΡΠΎ Π΄ΡΠΌΠ°ΡΡ, ΡΡΠΎ ΠΎΠ½ΠΈ Π½Π΅Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½Ρ ΠΈ ΠΎΡΠ΅Π½Ρ ΡΠ°ΡΡΡΡΠ°ΠΈΠ²Π°ΡΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ. Π₯ΠΎΡΡ Π²Π°Ρ ΡΡΠΏΠΎΠΊΠΎΠΈΡΡ: ΠΎΠΏΡΡΠ½ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π½Π΅ ΡΠ΅ΠΆΠ΅ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ². ΠΠ°ΠΆΠ½ΠΎ Π½Π΅ ΡΠΎ, ΡΡΠΎ Π²Ρ ΠΈΡ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΠ΅, Π° ΡΠΎ, ΡΡΠΎ Π²Ρ ΡΠΏΠΎΡΠΎΠ±Π½Ρ ΠΎΡΠ»Π°Π΄ΠΈΡΡ ΡΡΠΎΡ ΠΊΠΎΠ΄ (ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π±ΡΡΡΡΠΎ). ΠΡΠΈΠΌ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΠΏΡΡΠ½ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΎΡ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ . ΠΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΡΡΠ°ΠΉΡΠ΅ΡΡ Π½Π°ΠΉΡΠΈ ΠΎΡΠΈΠ±ΠΊΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅Π΄ΠΈΡΠ°ΡΠΈΠΈ Π½Π°Π΄ ΠΊΠΎΠ΄ΠΎΠΌ, ΡΠ²Π΅ΡΠ»Ρ Π΅Π³ΠΎ Π²Π·Π³Π»ΡΠ΄ΠΎΠΌ. ΠΡΠ»ΠΈ Π±ΡΡΡΡΠ°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π΅ Π΄Π°Π»Π° ΠΎΡΠ²Π΅ΡΠ°, ΡΠΎ ΠΏΡΠΈΡΡΡΠΏΠ°ΠΉΡΠ΅ ΠΊ ΠΎΡΠ»Π°Π΄ΠΊΠ΅.
ΠΠ° Π₯Π΅ΠΊΡΠ»Π΅ΡΠ΅, Π² ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠΈ ΡΡΠΎΠΊΠΎΠ², Π½Π°ΠΌ ΠΏΠΈΡΡΡ: «ΡΡΠΎΡ ΠΊΠΎΠ΄ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ», ΠΈ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄. ΠΠ΅ΡΠΎΡΡΠ½ΠΎ, Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π΄ΡΠΌΠ°ΡΡ, ΡΡΠΎ ΠΎΠΏΡΡΠ½ΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ½ΡΡΡ, Π² ΡΠ΅ΠΌ ΠΎΡΠΈΠ±ΠΊΠ° ΠΈ Π½Π°ΠΉΡΠΈ Π΅Π΅, ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅Π² Π½Π° ΠΊΠΎΠ΄, Π½ΠΎ ΡΡΠΎ ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ ΡΠ°ΠΊ. ΠΠ»ΡΠ΄Ρ Π½Π° ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄, Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ, Π° ΡΡΠΎ, ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ, ΠΏΠΎΡΠ»ΠΎ Π½Π΅ ΡΠ°ΠΊ, ΠΈ Ρ ΡΠΆΠ΅ Π½Π΅ Π³ΠΎΠ²ΠΎΡΡ ΠΏΡΠΎ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠ°ΠΌΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ. ΠΠ°ΠΌ ΡΠ°ΠΊΠΆΠ΅ Π½ΡΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΈ Π½Π°ΡΠ°ΡΡ ΠΎΡΠ»Π°Π΄ΠΊΡ.
ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΡΠ²ΡΠ·Π°Π½ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠΎΠ². ΠΡΠ»Π°Π΄ΡΠΈΠΊΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΡΡΡΡΡ Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°ΠΌΠΈ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠ΄ ΠΏΠΎ ΡΠ°Π³Π°ΠΌ, ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ Π»ΡΠ±ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅ ΡΡΠ°ΡΠ΅ΠΉ (Π³ΡΠ³Π»ΠΈΡΡ ΠΏΠΎ Π·Π°ΠΏΡΠΎΡΡ: xdebug php ).
Π ΡΡΠ΅Π΄Π΅ Π₯Π΅ΠΊΡΠ»Π΅ΡΠ° ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° Π½Π΅Ρ, ΠΏΠΎΡΡΠΎΠΌΡ Π·Π΄Π΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ (Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉ ΡΡ ΠΆΠ΅ Π·Π°Π΄Π°ΡΡ) β ΠΎΡΠ»Π°Π΄ΠΎΡΠ½Π°Ρ ΠΏΠ΅ΡΠ°ΡΡ. Π‘ΡΡΡ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠΌ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ΅, Π½ΠΎ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠ±ΡΡΠ½Π°Ρ ΠΏΠ΅ΡΠ°ΡΡ Π½Π° ΡΠΊΡΠ°Π½:
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π² Π²ΡΠ²ΠΎΠ΄ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΡΡΠΎΠΊΠΈ, Π½ΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π΅ Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΡΠΊΠΎΡΠΎ ΠΈΠ·ΡΡΠΈΠΌ.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ
ΠΡΡΠ°Π»ΠΈΡΡ Π²ΠΎΠΏΡΠΎΡΡ? ΠΠ°Π΄Π°ΠΉΡΠ΅ ΠΈΡ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Β«ΠΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅Β»
ΠΠ°ΠΌ ΠΎΡΠ²Π΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π₯Π΅ΠΊΡΠ»Π΅ΡΠ° ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΡΠ΄Π΅Π½ΡΡ.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΎΡΠ»Π°Π΄ΠΊΠΈ php-ΠΊΠΎΠ΄Π° ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Xdebug
ΠΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ Π½Π° PHP β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ error_log, print_r ΠΈ var_dump. ΠΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ΠΈ Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΡΠ°ΠΌ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠ΄Π°. ΠΠ΄Π½Π°ΠΊΠΎ Ρ ΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Xdebug β ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΡΡΠ΅Π΄ΠΈ PHP-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ, Π° Π½Π΅ ΡΡΡΠ°Π΄Π°ΡΡ.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π° ΠΎΡΠ»Π°Π΄ΠΊΠ° PHP Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ²ΡΠ·ΠΊΠΈ Xdebug ΠΈ VSCode. ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ΡΡ PHPStorm, ΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΠΎΠΆΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ β Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π΄Π°ΠΆΠ΅ ΠΏΡΠΎΡΠ΅ ΠΈ Π±ΡΡΡΡΠ΅Π΅.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Xdebug
Xdebug β ΡΡΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ PHP, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ Π² IDE ΡΠ΅ΡΠ΅Π· Π±ΡΠ΅ΠΉΠΊ-ΠΏΠΎΠΉΠ½ΡΡ. Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . ΠΠ°ΠΊ ΠΈΡΠΎΠ³ β ΠΎΡΠΈΠ±ΠΊΠΈ Π² ΠΊΠΎΠ΄Π΅ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°ΡΡΡΡ Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ error_log, print_r ΠΈ var_dump.
ΠΡΠ΅ ΠΎΠ΄Π½Π° ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ β ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΡΠ΅ΠΊΠ°. ΠΠ½Π° Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΉ ΠΏΡΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠ²Π΅Π» ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅. ΠΠ½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠ΅ Π² ΡΡΠ½ΠΊΡΠΈΡ. Xdebug ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΏΡΠΎΡΠ°ΠΉΠ»Π΅Ρ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΡΠ·ΠΊΠΈΡ ΠΌΠ΅ΡΡ ΠΊΠΎΠ΄Π°. ΠΡΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π³ΡΠ°ΡΠΈΠΊΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ WebGrind β Π½Π°Π±ΠΎΡ PHP-ΡΠΊΡΠΈΠΏΡΠΎΠ² Π΄Π»Ρ ΡΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ Π²ΡΠ²ΠΎΠ΄Π° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ ΠΏΡΡΠΌΠΎ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ Xdebug Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠ»Π΅Π΄ΠΈΡΡ, ΠΊΠ°ΠΊΠ°Ρ ΡΠ°ΡΡΡ ΠΊΠΎΠ΄Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π·Π°ΠΏΡΠΎΡΠ°. ΠΡΠΎ Π΄Π°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Ρ ΠΎΡΠΎΡΠΎ ΠΊΠΎΠ΄ ΠΏΠΎΠΊΡΡΡ ΡΠ΅ΡΡΠ°ΠΌΠΈ.
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Xdebug
ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Xdebug PHP Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ CGI. ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Ρ ΠΎΡΡΠΈΠ½Π³Π° Timeweb, ΠΊΠ°ΠΊ Π΅Π³ΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ.
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ ΡΠ΅ΡΠ΅Π· SSH. ΠΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠΎΠ»Ρ Π² ΠΏΠ°Π½Π΅Π»ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Timeweb.
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ Π² ΠΏΠ°ΠΏΠΊΡ cd-bin ΡΠ°ΠΉΡΠ°:
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΡΡ ΡΡΡΠ»ΠΊΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
ΠΡΡΠ°Π΅ΠΌΡΡ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ cgi-bin ΠΈ ΠΊΠΎΠΏΠΈΡΡΠ΅ΠΌ ΡΠ°ΠΉΠ» php.ini:
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ PHP Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π°ΠΌΠΈ Π² ΡΠ°ΠΉΠ»Π΅ php.ini. ΠΠ½ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ cgi-bin. ΠΡΠΊΡΡΠ²Π°Π΅ΠΌ Π΅Π³ΠΎ ΠΈ Π²ΡΡΠ°Π²Π»ΡΠ΅ΠΌ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ:
ΠΡΠ»ΠΈ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΏΠΎΡΡ Π·Π°Π½ΡΡ, ΡΠΊΠ°ΠΆΠΈΡΠ΅ Π΄ΡΡΠ³ΠΎΠΉ. ΠΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π΄Π»Ρ Xdebug β 9000. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ idekey Ρ ΡΠΊΠ°Π·Π°Π» VSCODE. ΠΡΠ»ΠΈ Π±ΡΠ΄Π΅ΡΠ΅ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π΄Π»Ρ PHPStorm, Π²ΠΏΠΈΡΠΈΡΠ΅ Π΅Π³ΠΎ.
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π»ΠΈ Xdebug, ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π² ΠΊΠΎΡΠ½Π΅ ΡΠ°ΠΉΡΠ° ΡΠ°ΠΉΠ» Myfile.php ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ:
ΠΡΠΊΡΡΠ²Π°Π΅ΠΌ ΡΠ°ΠΉΠ» Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, ΡΡΠΎ Π²ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠΊΠ°Π·Π°Π½Ρ Π²Π΅ΡΠ½ΠΎ.
ΠΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
Π§ΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ PHP Debug Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅, Π½ΡΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠ²ΡΠ·Ρ IDE ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΠ΅ΡΠ΅Π· SSH-ΡΡΠ½Π½Π΅Π»Ρ.
ΠΠ° Linux Π²ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠ°ΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄.
ΠΡΠΈΠ²Π°ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅, Π° ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠ± ΡΡΠΎΠΌ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ SSH Π½Π° Windows, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ·Π½Π°ΡΡ ΠΈΠ· ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠΈ.
ΠΠ° Linux ΡΡΠ½Π½Π΅Π»Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
ΠΠ° Windows ΡΡΠ½Π½Π΅Π»Ρ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π· ΡΡΠΈΠ»ΠΈΡΡ PuTTY.
Π‘Π΅ΡΡΠΈΡ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡΡ ΠΏΠΎΠ΄ ΡΠ΅ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΡ ΡΠΊΠ°Π·Π°Π»ΠΈ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Session. Π Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π΅Π΅ Π·Π°Π½ΠΎΠ²ΠΎ.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° VSCode
Π§ΡΠΎΠ±Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Xdebug Π² VSCode, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ Π΄Π²Π° ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ: Sync-Rsync ΠΈ PHP Debug. ΠΠ΅ΡΠ²ΠΎΠ΅ Π½ΡΠΆΠ½ΠΎ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΌ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ, Π²ΡΠΎΡΠΎΠ΅ β Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ².
ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ ΠΏΡΡΡΡΡ ΠΏΠ°ΠΏΠΊΡ ΠΈ ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ Π΅Π΅ ΡΠ΅ΡΠ΅Π· VSCode: Β«Π€Π°ΠΉΠ»Β» β Β«ΠΡΠΊΡΡΡΡ ΠΏΠ°ΠΏΠΊΡΒ».
ΠΡΡΡ /home/user/.ssh/id_rsa β ΡΡΠΎ ΠΌΠ΅ΡΡΠΎ, Π³Π΄Π΅ Π»Π΅ΠΆΠΈΡ ΡΠ°ΠΉΠ» Ρ Π·Π°ΠΊΡΡΡΠΎΠΉ ΡΠ°ΡΡΡΡ SSH-ΠΊΠ»ΡΡΠ°.
ΠΠΎΡΠ»Π΅ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° settings.json Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π² VSCode F1, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Sync Remote to Local. Π Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ°ΠΏΠΊΡ, ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ , ΡΠΊΠΎΠΏΠΈΡΡΡΡΡΡ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°.
ΠΠ° ΡΡΠΎΠΌ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° IDE Π·Π°Π²Π΅ΡΡΠ΅Π½Π°. ΠΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΡΡΠΏΠ°ΡΡ ΠΊ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π°.
Debug ΠΊΠΎΠ΄Π°
ΠΡ Π½Π°ΡΡΡΠΎΠΈΠ»ΠΈ ΡΡΠ΅Π΄Ρ, ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌΡΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Xdebug.
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ Π² ΡΠ΅ΠΆΠΈΠΌ Β«ΠΡΠ»Π°Π΄ΠΊΠ°Β» ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, ΡΡΠΎ Π²ΡΠ΄Π΅Π»Π΅Π½ ΠΏΡΠ½ΠΊΡ Listen for XDebug. ΠΠ°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π½Π° Π·Π΅Π»Π΅Π½ΡΠΉ ΡΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ ΠΈΠ»ΠΈ Π½Π° ΠΊΠ»Π°Π²ΠΈΡΡ F5.
ΠΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ°ΠΉΡΠ° Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ Π² VSCode. Π ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠΎΠ΄Π° Π² Π±ΡΠ΅ΠΉΠΊ-ΠΏΠΎΠΉΠ½ΡΠ΅. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡΡΡ ΠΏΠΎ ΠΊΠΎΠ΄Ρ, ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ°Π³Π΅.
ΠΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Ρ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ²
Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Xdebug profiler Π½Π° ΠΏΠΎΠ»Π½ΡΡ ΠΌΠΎΡΠ½ΠΎΡΡΡ, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ WebGrind. ΠΡΠΎ Π½Π°Π±ΠΎΡ ΡΠΊΡΠΈΠΏΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅. Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ·Π²Π°Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠ·ΠΎΠ²ΠΎΠ², ΠΎΠ±ΡΠ΅Π΅ Π·Π°ΡΡΠ°ΡΠ΅Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π° Π²ΡΠ·ΠΎΠ² ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.
ΠΠ°ΡΠ΅ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΊΡΡΡΡ ΡΠ°ΠΉΠ» config.php, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ webgrind-master. Π Π½Π΅ΠΌ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΠΌ Π΄Π²Π΅ ΡΡΡΠΎΠΊΠΈ:
ΠΠΎΡΠ»Π΅ ΡΠ°ΠΊΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π½Π° Xdebug ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. ΠΡΠΊΡΡΠ²Π°Π΅ΠΌ Π½Π°Ρ ΡΠ΅ΡΡΠΎΠ²ΡΠΉ ΡΠΊΡΠΈΠΏΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅. ΠΠ°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ www.domain/webgrind-master. Π Π²ΡΠΏΠ°Π΄Π°ΡΡΠ΅ΠΌ ΡΠΏΠΈΡΠΊΠ΅ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΠΉ ΡΠΊΡΠΈΠΏΡ ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ Update.
Π€ΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΡΡΠ²Π°ΡΡ ΠΈΠ»ΠΈ ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ. ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΠΌΠ΅Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ Π³ΡΠ°ΡΡ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΉ β Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ΅ΠΆΠΈΠΌ Show Call Graph.
ΠΡΠ²ΠΎΠ΄: ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Xdebug?
Xdebug ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΠΎΡΠ»Π°Π΄ΠΊΡ PHP-ΠΊΠΎΠ΄Π°. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ Π²Π°Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΠ΅Ρ Π²ΡΠ΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠΈ Π² ΠΏΠΎΠΈΡΠΊΠ΅ Π±Π°Π³ΠΎΠ², ΡΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠΌΡΡΠ»Π° Π½Π΅Ρ. ΠΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°, Π±Π΅Π· Xdebug ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΡ ΡΠ΅ΡΠ΅Π· ΡΠ΄Π°Π»Π΅Π½Π½ΡΠ΅ Π±ΡΠ΅ΠΉΠΊ-ΠΏΠΎΠΉΠ½ΡΡ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΠΎΠ΄Π°.