phpstorm Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π°
ΠΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ PHPStorm
Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ IDE ΠΈΠ½ΠΎΠ³Π΄Π° ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ, ΠΈΠ½ΠΎΠ³Π΄Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΡΠΈΡΠΊΠΈ, ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΡ ΠΊΠ»Π°Π²ΠΈΡ ΠΈ ΠΏΡΠΎΡΠΈΠ΅ Π·Π°Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ ΠΏΡΠΈΡΡΠ½ΡΠ΅ ΡΡΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΎΡΠ΅Π΄Π°ΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ Π±Π΅Π· ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎΠ³ΠΎ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π²ΡΡΡΠ΅ΡΠΊΠΈ ΡΡΠΊΠΎΠ»ΡΠ·Π°ΡΡ ΠΏΡΠΈ ΡΡΠ΅Π½ΠΈΠΈ ΠΌΠ°Π½ΡΠ°Π»ΠΎΠ².
ΠΠ΅ ΠΏΡΠ΅ΡΠ΅Π½Π΄ΡΡ Π½Π° Π±ΠΈΠ±Π»ΠΈΡ ΠΈΠ»ΠΈ Β«Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ ΡΡΠ°ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°Β» Ρ Ρ ΠΎΡΡ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌΠΈ Π½Π°Ρ ΠΎΠ΄ΠΊΠ°ΠΌΠΈ Π² ΠΌΠΎΠ΅ΠΉ Π»ΡΠ±ΠΈΠΌΠΎΠΉ IDE, Π½Π΅ ΡΠΊΠ°ΡΡΠ²Π°ΡΡΡ Π² ΡΡΠΏΡΡ ΠΊΠΎΠΏΠΈΠΏΠ°ΡΡΡ ΠΌΠ°Π½ΡΠ°Π»ΠΎΠ² ΠΈ ΡΠΊΡΡΠ½ΡΡ ΡΠΏΠΈΡΠΊΠΎΠ² Ρ ΠΎΡΠΊΠ΅Π΅Π², ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎ, ΡΡΠΎ Ρ ΡΠ°ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΈ Π½Π°Π΄ ΡΠ΅ΠΌ ΡΠ΄ΠΈΠ²Π»ΡΡΡΡΡ ΠΊΠΎΠ»Π»Π΅Π³ΠΈ: Β«ΠΎ! Π° ΡΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ?Β»
ΠΡΠ»ΠΈ Π½ΠΈ ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠΈΡΠ΅ΠΊ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ Π² ΡΡΠ°ΡΡΠ΅ Π²Π°ΠΌ Π±ΡΠ»Π° Π½Π΅ Π² Π½ΠΎΠ²ΠΈΠ½ΠΊΡ, ΠΏΠΎΡΡΡΠ΄ΠΈΡΠ΅ΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Ρ ΠΎΡΡ Π±Ρ ΠΎΠ΄Π½Ρ ΡΠ²ΠΎΡ, ΡΠΎΠ³Π΄Π° ΠΌΠΈΡ ΡΡΠ°Π½Π΅Ρ Π»ΡΡΡΠ΅, Π΄Π΅ΡΠ΅Π²ΡΡ Π·Π΅Π»Π΅Π½Π΅Π΅β¦ Π½Ρ Π²Ρ ΠΏΠΎΠ½ΡΠ»ΠΈ.
Π― ΡΠ°Π±ΠΎΡΠ°Ρ Π½Π° Mac, ΠΏΠΎΡΡΠΎΠΌΡ Ρ ΠΎΡ-ΠΊΠ΅ΠΈ ΡΠΊΠ°Π·ΡΠ²Π°Ρ Π² Β«ΡΠ²ΠΎΠ΅ΠΉΒ» ΡΠ°ΡΠΊΠ»Π°Π΄ΠΊΠ΅. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΈΠ· Π½ΠΈΡ Π±ΡΠ΄ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΡΠΎΡΡΠΎΠΉ Π·Π°ΠΌΠ΅Π½ΠΎΠΉ [CMD] Π½Π° [CTRL] ΠΈΠ»ΠΈ [ALT], ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΠΎΠΈΡΠΊΠ°ΡΡ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Keymap. ΠΡΠ΄Ρ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½, Π΅ΡΠ»ΠΈ ΠΊΡΠΎ-ΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡ ΠΈ ΠΏΡΠΎΠ΄ΡΠ±Π»ΠΈΡΡΠ΅Ρ ΡΠ°ΡΠΊΠ»Π°Π΄ΠΊΡ Π΄Π»Ρ WIN.
ΠΠ²ΡΠΎΠ³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΊΠΎΠ΄Π°
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΊΡΡΠ° ΡΡΡΠΈΠ½Π½ΡΡ Π·Π°Π΄Π°Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ½ΠΎΠ³Π΄Π° Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΠ°ΠΌΠΈΠΌ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠΌ, Π° ΠΈΠ½ΠΎΠ³Π΄Π° ΡΡΠ΅Π±ΡΡΡ ΡΡΠΏΠΎΠΉ ΡΡΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ. PHPStorm ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠΏΡΠΎΡΡΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ [CTRL]+N, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π³Π΅ΡΡΠ΅ΡΠΎΠ² ΠΈ ΡΠ΅ΡΡΠ΅ΡΠΎΠ² (Getters & Setters)
ΠΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΠΊΠ»Π°ΡΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π°Π±ΠΎΡ Π³Π΅ΡΡΠ΅ΡΠΎΠ² ΠΈ\ΠΈΠ»ΠΈ ΡΠ΅ΡΡΠ΅ΡΠΎΠ², ΠΏΡΠΈΡΠ΅ΠΌ Π² ΠΏΠΎΡΠ²Π»ΡΡΡΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ Π΄Π»Ρ ΠΊΠ°ΠΊΠΈΡ
ΠΈΠΌΠ΅Π½Π½ΠΎ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ PHPDoc
ΠΠΎ ΡΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΡΠΎΠΌΡ, ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Π½Π°ΡΠ°ΡΡ ΠΏΠΈΡΠ°ΡΡ /** ΠΈ Π½Π°ΠΆΠ°ΡΡ Enter. ΠΠΎΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΠΎΠ΄Π½Ρ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ Π±ΡΠ΄Π΅Ρ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ Doc Block.
ΠΠ΅ΡΠ΅Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ (Override & Implementation)
ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΊΠ»Π°ΡΡΠ° ΠΏΠΎΡΠΎΠΌΠΊΠ° ΠΈΠ»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΡ
ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΡΡΠΎΠ±Ρ Π½Π΅ Π΄ΠΎΠΏΡΡΡΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΡ, ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡΡΡ Π»Π΅Π·ΡΡ Π² ΠΊΠ»Π°ΡΡ ΠΏΡΠ΅Π΄ΠΎΠΊ ΠΈ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡΡ ΠΈΠ»ΠΈ ΠΊΠΎΠΏΠΈΠΏΠ°ΡΡΠΈΡΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΈ Π°ΡΡΠΈΠ±ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°. ΠΠ»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ Π΄Π»Ρ Π²ΡΠ΅Ρ
Π»ΠΈ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΡ
ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π΅ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ Π²ΡΠΏΠΎΠΌΠΈΠ½Π°ΡΡ ΡΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄Π»Ρ ArrayAccess. ΠΡΡΡ Π²Π°ΡΠΈΠ°Π½Ρ ΠΏΠΎΠ»ΡΡΡΠ΅:
[CMD] + I β ΠΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡ
[CMD] + O β ΠΠ΅ΡΠ΅Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
ΠΠΎΡΠ»Π΅ Π½Π°ΠΆΠ°ΡΠΈΡ Ρ
ΠΎΡΠΊΠ΅Ρ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠΊΠ½ΠΎ Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΌΠ΅ΡΠΎΠ΄Ρ Π±ΡΠ΄Π΅ΠΌ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ. ΠΠΎΡΠ»Π΅ Π²ΡΠ±ΠΎΡΠ° Π³Π΅Π½Π΅ΡΠΈΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ Ρ ΡΠΎΠ±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΈΠ²Π°ΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΈΠΌΠ΅Π½Π° Π°ΡΡΠΈΠ±ΡΡΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊ:
ΠΠ²ΡΠΎΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°
ΠΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π½Π°ΠΆΠ°ΡΠΈΠ΅ Ρ ΠΎΡΠΊΠ΅Ρ ΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ΅Ρ ΡΠ°ΠΉΠ» ΡΠ΅Π»ΠΈΠΊΠΎΠΌ. ΠΡΠ»ΠΈ Π²ΡΠ±ΡΠ°ΡΡ ΠΎΠ±Π»Π°ΡΡΡ, ΡΠΎ ΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ selection. ΠΡΠ»ΠΈ Π²ΡΠ±ΡΠ°ΡΡ Π² Π΄Π΅ΡΠ΅Π²Π΅ ΠΏΠ°ΠΏΠΊΡ ΠΈΠ»ΠΈ Π²Π΅ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ, ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°Π·Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ Π² ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π²ΡΡ ΡΡΠ°Π·Ρ.
ΠΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ (Code Completition)
ΠΠ°ΠΆΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ IDE ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΈ Π°ΡΡΠΈΠ±ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ². ΠΡΠΎΠ±Π΅Π½Π½ΠΎ ΡΡΠΎ Π²Π°ΠΆΠ½ΠΎ Π΄Π»Ρ ΠΠΠ, ΠΊΠΎΠ³Π΄Π° ΡΠ΅ΠΏΠΎΡΠΊΠΈ ΠΏΠΎ 3-4 Π½Π°ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΡ ΠΊΠ»Π°ΡΡΠ° ΡΠΏΠΎΡΠΎΠ±Π½Ρ Π·Π°ΠΏΡΡΠ°ΡΡ ΠΊΠΎΠ³ΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ.
ΠΠ»Ρ ΡΡΠ½ΠΊΡΠΈΠΉ Π½ΡΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ PHPDoc Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ @ return. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠ»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ:
ΠΠ»Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π½Π°Π΄ ΠΊΠ»Π°ΡΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ PHPDoc
ΠΡΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
ΠΠ°Π΄Π°ΡΠΈ (tasks)
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ ΡΠΆΠ΅ Π΄Π°Π²Π½ΠΎ ΡΡΠ°Π»ΠΎ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠΌ Ρ ΠΎΡΠΎΡΠ΅Π³ΠΎ ΡΠΎΠ½Π°. ΠΠΎ ΡΠ°ΡΡΠΎ Π±ΡΠ²Π°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΊΠΎΠ³Π΄Π° ΡΠ°Π±ΠΎΡΠ° Π²Π΅Π΄Π΅ΡΡΡ Π½Π°Π΄ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ Π·Π°Π΄Π°ΡΠ°ΠΌΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ ΠΈΠ»ΠΈ ΠΏΡΠΈΠ±Π΅Π³Π°Π΅Ρ ΠΊΡΠΎ-ΡΠΎ ΠΈ ΡΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΠΈΡ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ Π²ΠΎΠΎΠΎΠΎΡ ΡΡΠΎΡ Π±Π°Π³ ΠΏΡΡΠΌ-Π²ΠΎΡ-ΡΡΡ. ΠΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π±ΡΡΡ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡΠΈΡΡ Π½ΡΠΆΠ½ΡΠΉ ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ, Π² ΠΊΠΎΠΌΠΌΠΈΡ ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ Π»ΠΈΡΠ½ΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΡΡ ΡΠ°ΠΌ Π±ΡΡΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ.
ΠΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΡΠΎΠ³ΠΎ ΠΈ Π²Π½Π΅ΡΡΠΈ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π² ΡΠ°Π±ΠΎΡΡ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Tasks. Π‘ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ Π΅ΡΡΡ ΡΠ²ΠΎΠΉ Change-Π»ΠΈΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΊΠ°Π·Π°Π½Ρ ΡΠ°ΠΉΠ»Ρ Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π·Π°Π΄Π°ΡΠ°ΠΌΠΈ ΡΡΠ°Π·Ρ Π²ΠΈΠ΄Π½ΠΎ, Ρ ΠΊΠ°ΠΊΠΈΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ ΠΏΠΎ ΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ ΠΈ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π½Π΅ Π·Π°Π±ΡΡΡ.
ΠΡΡΠ³ΠΎΠΉ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, ΡΡΠΎ IDE ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π°Π΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΎΠ΄Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ Π½Π°ΡΠΈΠ½Π°Π΅ΡΠ΅ ΠΏΡΠ°Π²ΠΈΡΡ ΡΠ°ΠΉΠ», ΡΠΆΠ΅ Π·Π°ΡΡΠΎΠ½ΡΡΡΠΉ Π² Π΄ΡΡΠ³ΠΎΠΉ.
ΠΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π°, ΡΡΠΎ ΠΏΡΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠ΅ Π² Π½Π΅Π³ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈΠ· ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ change-Π»ΠΈΡΡΠ° + Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ ΠΏΠΎΠ΄ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ.
Π₯ΠΎΡΠΎΡΠΎ Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ ΡΠΆΠ΅ Π΅ΡΡΡ Π±Π°Π³ΡΡΠ΅ΠΊΠ΅Ρ ΡΠΈΠΏΠ° Jira ΠΈΠ»ΠΈ Redmine, Π΅ΡΠ»ΠΈ Π½Π΅Ρ, Π½Π° ΡΠΎΠΌ ΠΆΠ΅ GitHub Π΅ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠ°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π±Π°Π³-ΡΡΠ΅ΠΊΠΈΠ½Π³Π°, ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΠ°Ρ PHPStorm. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ΄Π³ΡΡΠ·ΠΈΡΡ Π½ΠΎΠΌΠ΅Ρ, Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ Π·Π°Π΄Π°ΡΠΈ ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ ΠΏΡΡΠΌΠΎ Π² IDE, Ρ ΠΎΡΡ Π½ΠΈΡΡΠΎ Π½Π΅ ΠΌΠ΅ΡΠ°Π΅Ρ Π½Π΅ ΠΏΠΎΠ»ΡΠ·ΡΡΡΡ ΡΡΠ΅ΠΊΠ΅ΡΠΎΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠ΅ change-Π»ΠΈΡΡΡ.
FTP, Π΄Π΅ΠΏΠ»ΠΎΠΉ ΠΈ Π°Π²ΡΠΎΠ΄Π΅ΠΏΠ»ΠΎΠΉ
Π‘ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ ΡΠ°Π±ΠΎΡΠ° Π²Π΅Π΄Π΅ΡΡΡ ΠΏΠΎ FTP ΠΈΠ»ΠΈ SFTP. PHPStorm ΠΈΠΌΠ΅Π΅Ρ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π½ΠΈΠΌΠΈ. Π‘ΠΎΡ ΡΠ°Π½ΠΈΠ² Π΄ΠΎΡΡΡΠΏΡ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΈ Π½Π°ΡΡΡΠΎΠΈΠ² mapping ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠ³ΡΡΠΆΠ°ΡΡ ΠΈ Π·Π°Π³ΡΡΠΆΠ°ΡΡ (upload & download) ΡΠ°ΠΉΠ»Ρ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ Π½Π°ΠΆΠ°ΡΠΈΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ ΠΎΡΠΊΠ΅Ρ. Π§ΡΠΎΠ±Ρ ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ β Π½ΡΠΆΠ½ΠΎ Π½Π΅ Π·Π°Π±ΡΡΡ ΡΡΠΊΠ½ΡΡΡ Β«use this server as defaultΒ»
ΠΠΎΡΠ΅ΠΌΡ-ΡΠΎ Π΄Π»Ρ Mac Π½Π΅ Π·Π°Π΄Π°Π½Ρ Ρ
ΠΎΡΠΊΠ΅ΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΡΡΠΈΡ
Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, Π½ΠΎ Π² Keymap ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡ
Π·Π°Π΄Π°ΡΡ (ΡΠΏΠ°ΡΠΈΠ±ΠΎ ΠΡΠΏ). Π― ΠΏΠΎΡΡΠ°Π²ΠΈΠ» ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅:
β’ Upload to Default Server: [CTRL] + U
β’ Download from Default Server: [CTRL] + D
(ΠΏΡΠΈΠ²Π΅Π» ΠΈΡ
Π΄Π»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΠΏΠΎΠΈΡΠΊΠ° Π² Keymap + Π½Π° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄ Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΡΡΡ)
Π’ΡΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎ PHPStorm ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ [CMD] + S ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΡΡΠ°Π·Ρ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, Ρ.ΠΊ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈ Π°ΠΏΠ»ΠΎΠ°Π΄Π° ΡΠΎΠ²ΠΌΠ΅ΡΠ°ΡΡΡΡ Π² ΠΎΠ΄Π½Ρ.
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Π·Π°Π±ΠΎΡΠΈΡΡΡ Π²ΡΡ Π»ΠΈ Π·Π°Π³ΡΡΠΆΠ΅Π½ΠΎ ΠΈ Π½ΠΈΡΠ΅Π³ΠΎ Π»ΠΈ Π½Π΅ Π·Π°Π±ΡΡΠΎ.
ΠΠΎΠ½ΡΠΎΠ»Ρ
ΠΠ½ΠΎΠ³ΠΈΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΊΠΎΠ½ΡΠΎΠ»Ρ Π΄Π»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°ΡΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ. ΠΠ»Ρ Symfony, Zend ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² PHPStorm ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ ΠΈ Π°Π²ΡΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π² Command Line Tools Console [CMD] + [SHIFT] + X
ΠΠΎ Π½ΠΈΡΡΠΎ Π½Π΅ ΠΌΠ΅ΡΠ°Π΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊΠΎΠ΅ ΠΆΠ΅ ΠΈ Π΄Π»Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈΠ»ΠΈ ΡΠ°ΡΡΠΎΡΠΏΠΎΡΡΠ΅Π±Π»ΡΠ΅ΠΌΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ UNIX ΠΈΠ»ΠΈ GIT, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ XML ΡΠ°ΠΉΠ» Π²ΠΈΠ΄Π°:
ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Π²ΠΎΡ ΡΡΡ: devnet.jetbrains.net/docs/DOC-1230
Π Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΠΈ ΠΏΠΎΠΈΡΠΊΠ°
[CMD] + N β Find by Class Name
ΠΠΎΠΈΡΠΊ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ»Π°ΡΡΠ°. Π£Π΄ΠΎΠ±Π½ΠΎ Π² Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ , ΠΊΠΎΠ³Π΄Π° Π²ΡΡ Π·Π°ΡΡΡΠΎ Π²Π³Π»ΡΠ±Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΉ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ Π³Π΄Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ. Π£Π±ΠΎΠΉΠ½ΠΎΡΡΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Β«ΡΠΌΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊΒ», Ρ.ΠΊ. ΠΈΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΏΠΎ ΡΠ°ΡΡΠΈ Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ°, ΡΠ°ΠΊ ΠΈ ΠΏΠΎ ΠΏΠ΅ΡΠ²ΡΠΌ Π±ΡΠΊΠ²Π°ΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ SomeVeryLongClass Π±ΡΠ΄Π΅Ρ Π½Π°ΠΉΠ΄Π΅Π½ ΠΏΠΎ Β«SVLCΒ». Π£ΡΠΈΡΡΠ²Π°Π΅Ρ ΡΠ΅Π³ΠΈΡΡΡ Π±ΡΠΊΠ², Π±ΡΠ΄ΡΡΠ΅ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½Ρ.
UPD: Β«Π£ΠΌΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊΒ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π½Π°Π·ΡΠ²Π°ΡΡ Camel’s Hump. ΠΡΡΠ°ΡΠΈ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎΠ±Ρ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ»ΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ»ΠΎΡΡ Π½Π΅ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ (Π΄ΠΎ ΠΏΡΠΎΠ±Π΅Π»Π°), Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎ ΠΏΠΎ ΡΠ»ΠΎΠ²Π°ΠΌ (Π΄ΠΎ Π·Π°Π³Π»Π°Π²Π½ΠΎΠΉ Π±ΡΠΊΠ²Ρ). Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ, yujin1st
[CMD] + [SHIFT] + N β Find by File Name
ΠΠΎΠΈΡΠΊ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π°. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΏΠΎΠΈΡΠΊΡ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ»Π°ΡΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Β«ΡΠΌΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊΒ».
UPD: ΠΠ»Ρ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° ΠΏΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Ρ: some/deep/dir/with/file.txt Π½Π°ΠΉΠ΄Π΅ΡΡΡ ΠΏΠΎ Β«s/d/d/w/fΒ», ΡΠΏΠ°ΡΠΈΠ±ΠΎ develop7
[CMD] + [SHIFT] + [ALT] + N β Find Symbol
ΠΠΎΠΈΡΠΊ Π»ΡΠ±ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ/ΠΌΠ΅ΡΠΎΠ΄Π° ΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ, ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΈΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Π°, Π° ΠΊΠ»Π°ΡΡ Π½Π΅Ρ. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ conf
[ALT] + [F7] β Find Usages
Π ΠΌΠΎΠΌΠ΅Π½Ρ ΠΊΠΎΠ³Π΄Π° ΠΊΡΡΡΠΎΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ»Π°ΡΡΠ° ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° Π½Π°ΠΆΠ°ΡΠΈΠ΅ Ρ ΠΎΡΠΊΠ΅Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΉΡΠΈ Π²ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΈΠ»ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠ°ΡΡΠΈ (Scope).
ΠΡΡΡ Π²Π°ΡΠΈΠ°Π½Ρ [CTRL] + [ALT] + [F7] β ΡΠΎΡ ΠΆΠ΅ ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡΠΌ, Π½ΠΎ Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Ρ. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ iPavel
[CTRL] + [SHIFT] + F β Find in Path
ΠΠΎΠΈΡΠΊ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠΉ ΡΡΠ°Π·Ρ ΠΏΠΎ ΡΠ°ΠΉΠ»Π°ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΡΠΈ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³Π΅ ΠΎΠ±ΡΡΠ½ΠΎ Ρ ΠΎΡΠΎΡΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΡΠ΅Ρ Find Usages.
ΠΠ΅ ΡΡΠΎΠΈΠ»ΠΎ Π±Ρ ΠΏΠΈΡΠ°ΡΡ ΠΎ βΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠΈΡΠΊΠ΅β, Π΅ΡΠ»ΠΈ Π±Ρ Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄ΡΡ ΠΈΡΠΊΠ°ΡΡΡΡ Π½ΡΠΆΠ½ΡΠ΅ ΡΡΡΠΊΠΈ, ΠΈΠ»ΠΈ Π½Π°ΡΡΡΠΎΠΈΡΡ Scope. Scope ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π³ΠΈΠ±ΠΊΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΠΏΠΎΠΈΡΠΊΠ°, Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ. ΠΠΎΠΆΠ½ΠΎ Π²ΡΠΊΠΈΠ½ΡΡΡ ΠΈΠ· ΠΏΠΎΠΈΡΠΊΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΉΠ»Ρ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° ΠΈΠ»ΠΈ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ Π»ΠΈΠ±Ρ.
Π£Π±ΡΠ°ΡΡ ΡΠ°ΠΌΠΊΡ Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΌΠΈ Π²ΠΊΠ»Π°Π΄ΠΎΠΊ
Π Π½ΠΈΠΆΠ½Π΅ΠΌ Π»Π΅Π²ΠΎΠΌ ΡΠ³Π»Ρ Π΅ΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΠ°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ ΡΠ±ΡΠ°ΡΡ ΡΠ°ΠΌΠΊΠΈ Π΄Π»Ρ Π±ΠΎΠΊΠΎΠ²ΡΡ ΠΈ Π½ΠΈΠΆΠ½ΠΈΡ Π²ΠΊΠ»Π°Π΄ΠΎΠΊ. Π‘Π°ΠΌΠΈ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΊΡΡΠ²Π°ΡΡ ΠΏΠΎ ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΡΠΌ [CMD] + 0-9, Π½ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΡΠΈΡΡΡ. Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡΡΠΎΠ΅ Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ Π½Π°ΠΆΠ°ΡΠΈΠ΅ (Π΄Π°Π±Π»ΠΊΠ»ΠΈΠΊ) [CMD], ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½Π° Π²ΡΠ΅ΠΌΡ ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠ°ΠΌΠΊΡ Ρ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ, Π² ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΊΠ°ΡΡ ΠΌΡΡΠΎΠΉ.
Productivity Guide
Π ΠΌΠ΅Π½Ρ Help->Productivity Guide Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ ΠΏΡΠΎ ΡΠ΅Π±Ρ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΏΠΈΡΠΎΠΊ ΡΠΈΡ ΡΠΎ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΎΠΉ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ nxn
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π΄Π²ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²
ΠΡΠΈ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠΈ Π΄Π²ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ½ΠΊΡ Β«Compare Two FilesΒ», ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΈΡ Π² Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΌ Π΄ΠΈΡΡ-Π²ΡΡΠ²Π΅ΡΠ΅ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π² Π΄ΡΡΠ³ΠΎΠΉ. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ pro100tak
ΠΠ΅ΡΠΊΠΈ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ [CTRL] + [SHIFT] + 0. 9 ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΌΠ΅ΡΠΊΠΈ. ΠΠ΅ΡΠ½ΡΡΡΡΡ Π½Π° ΠΌΠ΅ΡΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ [CTRL] + 0. 9. Π Π°Π±ΠΎΡΠ°Π΅Ρ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ ualinker
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ Ρ ΠΎΡΠΊΠ΅ΠΈ ΠΈΠ· ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π²
[CMD] + [ALT] + T (WIN: CTRL + ALT + T)
ΠΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΡΠ΅Π΄Π·Π°Π΄Π°Π½Π½ΡΠΌΠΈ ΡΡΡΠΊΠ°ΠΌΠΈ, ΡΠΈΠΏΠ° ΡΠ΅Π³ΠΎΠ² ΠΈΠ»ΠΈ if-else, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ happyproff
[CMD] + [F12] (WIN: CTRL + F12)
Π‘ΡΡΡΠΊΡΡΡΠ° ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ° Ρ ΠΏΠΎΠΈΡΠΊΠΎΠΌ ΠΈ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ»Π΅Π½ΠΎΠ²
ΠΠ½Π°Π»ΠΎΠ³ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Structure, ΡΠΎΠ»ΡΠΊΠΎ Π²ΠΎ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠ΅ΠΌ ΠΎΠΊΠ½Π΅. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ happyproff
[ALT] + [Home] β Π±ΡΡΡΡΠ°Ρ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΡ ΠΏΠΎ ΠΏΡΡΠΈ ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ develop7
[CMD] + [SHIFT] + A β ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ IDE
Reformat and rearrange code
You can reformat a part of code, the whole file, group of files, or a directory. You can also exclude part of code or some files from the reformatting.
Reformat a code fragment in a file
In the editor, select a code fragment you want to reformat.
If you don’t select a code fragment, PhpStorm will reformat the whole file.
Reformat a file
Keep pressing Shift and select additional files for a group reformatting.
In the dialog that opens, if you need, select the following reformatting options:
Optimize imports : select this option if you want to remove unused imports, add missing ones, or organize import statements.
For more information, refer to the Optimize imports section.
Rearrange entries : select this option if you need to rearrange your code based on the arrangement rules specified in the code style settings.
Code cleanup : select this option to run the code cleanup inspections.
Reformat code in a folder
Reformat line indents
You can reformat line indents based on the specified settings.
In some cases, the option Detect and use existing file indents for editing located in the Indent Detection section in Settings/Preferences | Editor | Code Style can override your settings. In this case PhpStorm will display a notification.
Automatically reformat code on save
You can configure the IDE to reformat code in modified files automatically when your changes are saved.
Enable the Reformat code option.
Additionally, you can click Configure scope to specify the patterns of filenames and directories that you want to exclude from reformatting.
Exclude files from reformatting
You can exclude a group of files and directories from reformatting, code arrangement, and import optimization.
Switch to the Formatter tab and in the Do not format field, enter the files and directories that you want to exclude using a glob pattern.
Apply the changes and close the dialog.
Exclude code fragments from reformatting in the editor
Switch to the Formatter tab and enable the Turn formatter on/off with markers in code comments option.
The code between the markers won’t be reformatted.
The example below shows two code fragments. One of the is enclosed in the @formatter:off and @formatter:on markers while the other one is not.
The original formatting is preserved:
The original formatting is not preserved in both code fragments:
Keep existing formatting
You can select formatting rules which will be ignored when you reformat the code. For example, you can adjust the IDE to keep simple methods and functions in one line, whereas normally they are expanded into multiple lines after code reformatting.
In the Keep when reformatting section, select the formatting rules which you want to ignore and deselect those which should be applied.
PhpStorm will reformat your code in accordance with the current style settings, keeping existing formatting for the rules which you’ve selected.
Rearrange code
You can rearrange your code according to the arrangement rules set in the Code Style. PHP page of the Settings/Preferences dialog.
Configure grouping rules
Grouping rules let you keep related class methods together.
Create matching rules
Matching rules let you define elements order as a list of rules, where every rule has a set of matching conditions, such as modifier or type.
Use the Type and Modifier filters to choose the code constructs and their visibility modifiers that should be regulated by the rule. Note that double-clicking a filter negates the condition.
Use the Name field to specify entry names the rule should affect. This filter matches only entry names, such as property names, method names, class names, and so on. The filter supports regular expressions and uses a standard syntax. The match is performed against the entire name.
You can also create groups (aliases) of rules and refer to them when creating a new matching rule.
Create rule aliases
With aliases, you can group several arrangement rules into a single entity and refer to it when you adding a new matching rule.
In the Rules Alias Definitions dialog that opens, add a group name and its rules.
The created alias can now be referred to when adding a matching rule.
Create section rules
Section rules let you move methods or variables into the sections that you have defined.
For example, you can create the following section rule:
After the arrangement, methods in the class will be rearranged as specified in the created section rule and will be surrounded by comments:
You can exclude specific files and folders from arrangement. For more information, refer to Exclude files from reformatting.
Rearrange code entries
Select a language for which you want to create arrangement rules.
On the Arrangement tab, specify the appropriate options such as grouping and matching rules.
Click OK to save the changes.
Automatically rearrange code on save
You can configure the IDE to rearrange code elements in modified files automatically when your changes are saved.
Enable the Rearrange code option.
Additionally, you can click Configure arrangement rules to specify the rules for reordering code elements for the selected language.
Phpstorm Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π°
ΠΠ°ΠΊ ΠΎΡΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π² PhpStorm ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ PHP CS Fixer
1. Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ PHP CS Fixer Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎ:
Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π² ΠΠ°ΡΠ΅ΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ PATH ΡΠΊΠ°Π·Π°Π½ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π΄Π²ΠΎΠΈΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Composer-Π°. Π Π°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ. ΠΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌ Unix:
Π Π°Π·Π±ΠΈΡΠ°ΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π½Π΅ Π±ΡΠ΄Ρ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. ΠΠΎ Π½Π° Π²ΡΡΠΊΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉ Π·Π°ΠΌΠ΅ΡΡ, ΡΡΠΎ ΠΎΠ΄Π½ΠΈ ΠΈ ΡΠ΅ ΠΆΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·Π½ΡΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΡ Π² StyleCI ΠΈ PHP CS Fixer. ΠΡ Π½Π΅ ΡΠ°ΠΊ ΡΠΆ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ, Π½ΠΎ Π²ΡΡ ΠΆΠ΅ Π΅ΡΡΡ.
4. ΠΡΠΊΡΡΠ²Π°Π΅ΠΌ ΠΊΠΎΠ½ΡΠΎΠ»Ρ, Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
ΠΠ°ΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΏΠΎΠ»Ρ, ΠΊΠ°ΠΊ Π½Π° ΡΠΊΡΠΈΠ½Π΅ Π½ΠΈΠΆΠ΅ (Π² ΠΏΠΎΠ»Π΅ Program Π²ΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΏΡΡΡ, ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΡΠ°Π³Π΅ 4):
ΠΡΠΊΡΡΠ²Π°Π΅ΠΌ Π²ΠΊΠ»Π°Π΄ΠΊΡ PHP CS Fixer Π² ΠΏΡΠ°Π²ΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΎΠΊΠ½Π° ΠΈ ΠΊΠ»ΠΈΠΊΠ°Π΅ΠΌ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ Ρ ΠΌΠ½ΠΎΠ³ΠΎΡΠΎΡΠΈΠ΅ΠΌ ΡΠΏΡΠ°Π²Π° ΠΎΡ ΠΏΠΎΠ»Ρ Configuration :
ΠΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π°Π΅ΠΌ Π²ΡΠ±ΠΎΡ Π½Π°ΠΆΠ°Π² Ok ΠΈ Π·Π°ΡΠ΅ΠΌ Apply.
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ°ΠΌΠΈ PSR Π² PHPStorm
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Fabien Potencier (fabpot) ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π» ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ΅Ρ ΠΈ ΠΏΠ΅ΡΠ΅ΡΡΡΠ°ΠΈΠ²Π°Π΅Ρ Π²Π°Ρ ΠΊΠΎΠ΄ ΡΠ»Π΅Π΄ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ°ΠΌ PSR.
ΠΡΠΎΡ ΠΏΠΎΡΡ ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²Π°ΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΡΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΅Π³ΠΎ Π² PHPStorm, Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΡ ΡΡΠΎ Π±Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°.
Π¨Π°Π³ 1. Π‘ΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°.
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°. ΠΠΎΠΊΠ°ΠΆΡ Π²Π°ΠΌ ΡΠ°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Composer ΠΈΠ»ΠΈ Homebrew.
ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ cURL:
ΡΡΠΎ Π±Ρ ΡΠΊΠ°ΡΠ°ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΡΡΠΎ Π±Ρ Π΅Π³ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π·Π°ΠΏΡΡΡΠΈΡΡ.
Π§ΡΠΎ Π±Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎ.
ΠΡΠ»ΠΈ Π²Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΡΠ΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΡΠ΅ΡΠ΅Π· Composer ΠΈΠ»ΠΈ Homebrew, ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΏΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΡΠ»ΠΊΠ΅: https://github.com/fabpot/PHP-CS-Fixer#installation
Π¨Π°Π³ 2. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² PHPStorm
Π‘Π°ΠΌΠ°Ρ Π²Π°ΠΆΠ½Π°Ρ ΡΠ°ΡΡΡ ΡΡΠΎ Β«Tool settingsΒ».
ΠΡΠΎ ΡΠΎ, ΡΡΠΎ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²Π²Π΅ΡΡΠΈ:
Program: ΠΏΡΡΡ Π΄ΠΎ php-cs-fixer
Π ΠΌΠΎΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ ΡΡΠΎ Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π» Π΄Π°Π½Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΏΠΎ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌ Composer. ΠΡΠ»ΠΈ Π²Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π»ΠΈ Π΅Π³ΠΎ ΡΠ΅ΡΠ΅Π· cURL Π²Π°Ρ ΠΏΡΡΡ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ
Step 3: ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΡ ΠΊΠ»Π°Π²ΠΈΡ
ΠΈ Π½Π°Π·Π½Π°ΡΡΡΠ΅ ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΡ Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ CTRL + CMD + ]
Π‘Π΅ΠΉΡΠ°Ρ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π² Π² ΡΠ°ΠΉΠ»Π΅ ΠΈ Ρ ΠΎΡΠΈΡΠ΅ ΡΡΠΎ Π±Ρ ΠΊΠΎΠ΄ Π±ΡΠ» ΠΎΡΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½, ΠΏΡΠΎΡΡΠΎ Π½Π°ΠΆΠΌΠΈΡΠ΅ ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΡ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΡΠ΄Π΅Π»Π°Π΅Ρ ΡΡΠΎ
PhpStorm β ΠΏΠΎΠ²ΡΡΠ°Π΅ΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ (ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ½ΡΠ΅ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ). Π§Π°ΡΡΡ 1
PhpStorm β ΠΏΠΎΠ²ΡΡΠ°Π΅ΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ (ΠΏΠ»Π°Π³ΠΈΠ½Ρ ΠΈ ΡΠ΅ΠΌΡ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ). Π§Π°ΡΡΡ 2
Π£ Π²ΡΠ΅Ρ Π½Π°Ρ Π΅ΡΡΡ Π»ΡΠ±ΠΈΠΌΡΠ΅ IDE ΠΈΠ»ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΡ Π² ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ ΠΏΠΈΡΠ΅ΠΌ ΠΊΠΎΠ΄. ΠΠ»Ρ ΠΌΠ΅Π½Ρ ΡΡΠΎ PhpStorm, ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, ΡΡΠΎΠ±Ρ ΠΎΡΠ²ΠΎΠΈΡΡ Π²ΡΠ΅ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ½ΡΠ΅ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ ΠΈ ΡΡΠΊΠΎΡΠΈΡΡ ΡΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΠΏΠΎΠ΄Π΅Π»ΡΡΡ Ρ Π²Π°ΠΌΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΡ ΠΊΠ»Π°Π²ΠΈΡ ΠΈ ΡΠΎΠ²Π΅ΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΎΠ·ΡΠΌΡΡ Π½Π° ΡΠ΅Π±Ρ ΡΠ°ΡΡΡ ΡΡΡΠΈΠ½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠΎΠΆΠ΅ Π΄Π΅Π»Π°Π΅ΡΠ΅ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ Π² ΡΡΠΎΠΉ IDE. ΠΡΠ° ΡΡΠ°ΡΡΡ Π±ΡΠ»Π° ΡΠ°ΡΡΠΈΡΠ½ΠΎ Π²Π΄ΠΎΡ Π½ΠΎΠ²Π»Π΅Π½Π° ΡΡΠΈΠΌ Reddit ΡΡΠ΅Π΄ΠΎΠΌ, ΠΈ Ρ Π±ΡΠ΄Ρ ΡΠΏΠΎΠΌΡΠ½Π°ΡΡ ΠΈ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΡΠΊΠΈ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΠ΅ ΡΠ°ΠΌ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Ρ Π½Π° Linux Π² Vagrant, ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠΌ Π² Windows, Ρ Π±ΡΠ΄Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»Π°Π²ΠΈΡΡ CTRL Π²ΠΌΠ΅ΡΡΠΎ CMD. ΠΡΠ»ΠΈ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Π² OS X, Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅ CTRL Π½Π° CMD.
ΠΠ»Π°Π²ΠΈΠ°ΡΡΡΠ½ΡΠ΅ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ ΠΈ Ρ Π°ΠΊΠΈ
(ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎ, ΠΌΠ½ΠΎΠ³ΠΎ gif ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ)
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΡΠ΅ΠΌ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ: (Π² ΡΠΊΠΎΠ±ΠΊΠ°Ρ ΡΡΠ΄ΠΎΠΌ Ρ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΡΠΊΠ°Π·Π°Π½Ρ Π½Π°Π·Π²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π² keymap)
Π ΡΠΎΠΌΡ ΠΆΠ΅, ΠΊΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ Π²ΠΎ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠ΅ΠΌ ΠΎΠΊΠ½Π΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²ΡΡΠ΅ Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ ΠΏΠ΅ΡΠ΅ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΡΠ»ΠΈ Π΅ΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°ΡΡΠΎ ΠΈ ΠΏΡΠΈ ΡΡΠΎΠΌ Π²Ρ Π½Π΅ ΡΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Π½Π°Π΄ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ Π΄ΡΡΠ³ΠΈΡ Π»ΡΠ΄Π΅ΠΉ, ΡΠΎ Π²ΠΎΠ·ΡΠΌΠΈΡΠ΅ Π½Π° Π·Π°ΠΌΠ΅ΡΠΊΡ β Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ²ΡΠ·Π°ΡΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠΌ CTRL+S ΠΈ Π°Π²ΡΠΎΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠΈ. ΠΠΎ ΡΡΠΎΠΈΡ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Π½Π°Π΄ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ Ρ ΠΊΠ΅ΠΌ-ΡΠΎ Π΅ΡΠ΅, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠ°ΡΡΡΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΈ Π·Π°Π³ΡΡΠ·Π½ΠΈΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ.
ΠΡΠ»ΠΈ Π²Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΠ΅ΡΡ Π² Linux, ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ CTRL+ALT+L ΡΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ²ΡΠ·Π°Π½Π° Ρ Β«ΠΠ»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΎΠΉ ΡΠΊΡΠ°Π½Π°Β», ΠΈ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΎΡΠ²ΡΠ·Π°ΡΡ Π΅Π³ΠΎ Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π΅Π³ΠΎ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ PhpStorm.