ΠΠ°ΠΊ ΡΠ΅ΡΠ°ΡΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ: 10 ΡΠ°Π³ΠΎΠ²
‘).insertAfter(«#intro»),$(‘
‘).insertBefore( «.youmightalsolike»),$(‘
‘).insertBefore(«#quiz_container»),$(‘
‘).insertBefore(«#newsletter_block_main»),ja(!0),c=document.getElementsByClassName(«scrolltomarker»),a=0;a
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅:
ΠΠ°ΠΏΠΈΡΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ
Π Π΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ
ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠ΅ΡΠ΅Π½ΠΈΡ
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ°ΡΡΠΈ
ΠΡΡΠΎΡΠ½ΠΈΠΊΠΈ
Π£ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ΠΌ Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ (Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎΠΉ Π²Π΅Π»ΠΈΡΠΈΠ½ΠΎΠΉ) ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΡΠ±ΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΈΠ»ΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΎ Π² ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ. ΠΠ±ΡΠΎΠ»ΡΡΠ½Π°Ρ Π²Π΅Π»ΠΈΡΠΈΠ½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ x{\displaystyle x} ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ |x|{\displaystyle |x|}, Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎ (Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π½ΡΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠΌ, Π½ΠΈ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΌ ΡΠΈΡΠ»ΠΎΠΌ). Π£ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎΠΉ Π²Π΅Π»ΠΈΡΠΈΠ½ΠΎΠΉ ΡΠ΅ΡΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ Π»ΡΠ±ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅, Π½ΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π΄Π²Π° ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΈ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ.
Π¨Π°Π³ΠΈ
1
Π£ΡΡΠ½ΠΈΡΠ΅ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ. ΠΠ½ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΊ: |p|={pifΒ pβ₯0βpifΒ p<0{\displaystyle |p|={\begin{cases}p&{\text{if }}p\geq 0\\-p&{\text{if }}p<0\end{cases}}}. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π΅ΡΠ»ΠΈ ΡΠΈΡΠ»ΠΎ p{\displaystyle p} ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ°Π²Π΅Π½ p{\displaystyle p}. ΠΡΠ»ΠΈ ΡΠΈΡΠ»ΠΎ p{\displaystyle p} ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ°Π²Π΅Π½ βp{\displaystyle -p}. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΡΡ Π½Π° ΠΌΠΈΠ½ΡΡ Π΄Π°Π΅Ρ ΠΏΠ»ΡΡ, ΠΌΠΎΠ΄ΡΠ»Ρ βp{\displaystyle -p} ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»Π΅Π½.[1] X ΠΡΡΠΎΡΠ½ΠΈΠΊ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ
- ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, |9| = 9; |-9| = -(- 9) = 9.
2
Π£ΡΡΠ½ΠΈΡΠ΅ ΠΏΠΎΠ½ΡΡΠΈΠ΅ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎΠΉ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ Ρ Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ. ΠΠΎΠ΄ΡΠ»Ρ ΡΠΈΡΠ»Π° ΡΠ°Π²Π΅Π½ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π½Π°ΡΠ°Π»ΠΎΠΌ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΈ ΡΡΠΈΠΌ ΡΠΈΡΠ»ΠΎΠΌ. [2] X ΠΡΡΠΎΡΠ½ΠΈΠΊ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΠΎΠ΄ΡΠ»Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅ΡΡΡ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠΌΠΈ ΠΊΠ°Π²ΡΡΠΊΠ°ΠΌΠΈ, Π² ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠΈΡΠ»ΠΎ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΈΠ»ΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ (|x|{\displaystyle |x|}). ΠΠΎΠ΄ΡΠ»Ρ ΡΠΈΡΠ»Π° Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»Π΅Π½.[3] X ΠΡΡΠΎΡΠ½ΠΈΠΊ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ
- ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, |β3|=3{\displaystyle |-3|=3} ΠΈ |3|=3{\displaystyle |3|=3}. ΠΠ±Π° ΡΠΈΡΠ»Π° -3 ΠΈ 3 Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π½Π° ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠΈ ΡΡΠ΅Ρ Π΅Π΄ΠΈΠ½ΠΈΡ ΠΎΡ 0.
3
Π ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡΡΠΉΡΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ. ΠΠ±ΡΠΎΠ»ΡΡΠ½Π°Ρ Π²Π΅Π»ΠΈΡΠΈΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Π΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ. ΠΡΠ±ΡΠ΅ ΡΠΈΡΠ»Π° ΠΈΠ»ΠΈ ΡΠ»Π΅Π½Ρ Π²Π½Π΅ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΡ ΡΠΊΠΎΠ±ΠΎΠΊ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ Π½Π° Π΄ΡΡΠ³ΡΡ ΡΡΠΎΡΠΎΠ½Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ.[4] X ΠΡΡΠΎΡΠ½ΠΈΠΊ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°Π²Π΅Π½ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΌΡ ΡΠΈΡΠ»Ρ, ΠΏΠΎΡΡΠΎΠΌΡ, Π΅ΡΠ»ΠΈ ΠΏΠΎΡΠ»Π΅ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΎΠ½ ΡΠ°Π²Π΅Π½ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΌΡ ΡΠΈΡΠ»Ρ, ΡΠ°ΠΊΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ.
- ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π°Π½ΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ |6xβ2|+3=7{\displaystyle |6x-2|+3=7}; ΡΡΠΎΠ±Ρ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΈΠ· ΠΎΠ±Π΅ΠΈΡ
ΡΡΠΎΡΠΎΠ½ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Π²ΡΡΡΠΈΡΠ΅ 3:
|6xβ2|+3=7{\displaystyle |6x-2|+3=7}
|6xβ2|+3β3=7β3{\displaystyle |6x-2|+3-3=7-3}
|6xβ2|=4{\displaystyle |6x-2|=4}
Π Π΅ΠΊΠ»Π°ΠΌΠ°
- ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π°Π½ΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ |6xβ2|+3=7{\displaystyle |6x-2|+3=7}; ΡΡΠΎΠ±Ρ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΈΠ· ΠΎΠ±Π΅ΠΈΡ
ΡΡΠΎΡΠΎΠ½ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Π²ΡΡΡΠΈΡΠ΅ 3:
1
ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. Π£ΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ ΠΈΠΌΠ΅ΡΡ Π΄Π²Π° ΡΠ΅ΡΠ΅Π½ΠΈΡ. Π§ΡΠΎΠ±Ρ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅, ΠΈΠ·Π±Π°Π²ΡΡΠ΅ΡΡ ΠΎΡ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΡ ΡΠΊΠΎΠ±ΠΎΠΊ, Π° Π·Π°ΡΠ΅ΠΌ ΡΠ΅ΡΠΈΡΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ (ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎ).[6] X ΠΡΡΠΎΡΠ½ΠΈΠΊ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ
- ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ |6xβ2|=4{\displaystyle |6x-2|=4} ΡΠ²Π»ΡΠ΅ΡΡΡ 6xβ2=4{\displaystyle 6x-2=4}.
2
Π Π΅ΡΠΈΡΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ. Π’Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ.
- ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
6xβ2=4{\displaystyle 6x-2=4}
6xβ2+2=4+2{\displaystyle 6x-2+2=4+2}
6x=6{\displaystyle 6x=6}
6×6=66{\displaystyle {\frac {6x}{6}}={\frac {6}{6}}}
x=1{\displaystyle x=1}
- ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
3
ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. Π§ΡΠΎΠ±Ρ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅, ΠΈΠ·Π±Π°Π²ΡΡΠ΅ΡΡ ΠΎΡ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΡ ΡΠΊΠΎΠ±ΠΎΠΊ, Π° Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Π΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ ΡΠΈΡΠ»ΠΎΠΌ ΠΈΠ»ΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΡΡΠ°Π²ΡΡΠ΅ Π·Π½Π°ΠΊ Β«ΠΌΠΈΠ½ΡΡΒ». [7] X ΠΡΡΠΎΡΠ½ΠΈΠΊ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ
- ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΌ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ |6xβ2|=4{\displaystyle |6x-2|=4} ΡΠ²Π»ΡΠ΅ΡΡΡ 6xβ2=β4{\displaystyle 6x-2=-4}.
4
Π Π΅ΡΠΈΡΠ΅ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ. Π’Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π²ΡΠΎΡΠΎΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ.
- ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
6xβ2=β4{\displaystyle 6x-2=-4}
6xβ2+2=β4+2{\displaystyle 6x-2+2=-4+2}
6x=β2{\displaystyle 6x=-2}
6×6=β26{\displaystyle {\frac {6x}{6}}={\frac {-2}{6}}}
x=β13{\displaystyle x={\frac {-1}{3}}}
Π Π΅ΠΊΠ»Π°ΠΌΠ°
- ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
1
ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΡΡΠ°Π²ΡΡΠ΅ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅[8] X ΠΡΡΠΎΡΠ½ΠΈΠΊ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ , ΡΠΎ Π΅ΡΡΡ ΠΏΠΎΠ΄ΡΡΠ°Π²ΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ x{\displaystyle x}, Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ΅ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ, Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ.
ΠΡΠ»ΠΈ ΡΠΎΠ±Π»ΡΠ΄Π°Π΅ΡΡΡ ΡΠ°Π²Π΅Π½ΡΡΠ²ΠΎ, ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²Π΅ΡΠ½ΠΎ.- ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Π²Ρ Π½Π°ΡΠ»ΠΈ, ΡΡΠΎ x=1{\displaystyle x=1}, ΠΏΠΎΠ΄ΡΡΠ°Π²ΡΡΠ΅ 1{\displaystyle 1} Π² ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅:
|6xβ2|=4{\displaystyle |6x-2|=4}
|6(1)β2|=4{\displaystyle |6(1)-2|=4}
|6β2|=4{\displaystyle |6-2|=4}
|4|=4{\displaystyle |4|=4}
- ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Π²Ρ Π½Π°ΡΠ»ΠΈ, ΡΡΠΎ x=1{\displaystyle x=1}, ΠΏΠΎΠ΄ΡΡΠ°Π²ΡΡΠ΅ 1{\displaystyle 1} Π² ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅:
2
ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ. ΠΡΠ»ΠΈ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΠ΅ΡΠ΅Π½ΠΈΠΉ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅, ΡΡΠΎ Π΅ΡΠ΅ Π½Π΅ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΠΈ Π²ΡΠΎΡΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ Π²Π΅ΡΠ½ΡΠΌ. ΠΠΎΡΡΠΎΠΌΡ ΠΏΠΎΠ΄ΡΡΠ°Π²ΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ x{\displaystyle x}, Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ΅ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ, Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ.
- ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Π²Ρ Π½Π°ΡΠ»ΠΈ, ΡΡΠΎ x=β13{\displaystyle x={\frac {-1}{3}}}, ΠΏΠΎΠ΄ΡΡΠ°Π²ΡΡΠ΅ β13{\displaystyle {\frac {-1}{3}}} Π² ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅:
|6xβ2|=4{\displaystyle |6x-2|=4}
|6(β13)β2|=4{\displaystyle |6({\frac {-1}{3}})-2|=4}
|β4|=4{\displaystyle |-4|=4}
- ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Π²Ρ Π½Π°ΡΠ»ΠΈ, ΡΡΠΎ x=β13{\displaystyle x={\frac {-1}{3}}}, ΠΏΠΎΠ΄ΡΡΠ°Π²ΡΡΠ΅ β13{\displaystyle {\frac {-1}{3}}} Π² ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅:
3
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ. Π Π΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ (Π²Π΅ΡΠ½ΡΠΌ), Π΅ΡΠ»ΠΈ ΠΏΡΠΈ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΠΎΠ±Π»ΡΠ΄Π°Π΅ΡΡΡ ΡΠ°Π²Π΅Π½ΡΡΠ²ΠΎ.ΠΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π΄Π²Π°, ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ.
- Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ |4|=4{\displaystyle |4|=4} ΠΈ |β4|=4{\displaystyle |-4|=4}, ΡΠΎ Π΅ΡΡΡ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡΡΡ ΡΠ°Π²Π΅Π½ΡΡΠ²Π° ΠΈ ΠΎΠ±Π° ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ²Π»ΡΡΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ |6xβ2|+3=7{\displaystyle |6x-2|+3=7} ΠΈΠΌΠ΅Π΅Ρ Π΄Π²Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ: x=1{\displaystyle x=1}, x=β13{\displaystyle x={\frac {-1}{3}}}.
Π Π΅ΠΊΠ»Π°ΠΌΠ°
Π‘ΠΎΠ²Π΅ΡΡ
- ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΡΠΈΠΏΠΎΠ² ΡΠΊΠΎΠ±ΠΎΠΊ ΠΏΠΎ Π²ΠΈΠ΄Ρ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ.
Π Π΅ΠΊΠ»Π°ΠΌΠ°
ΠΡΡΠΎΡΠ½ΠΈΠΊΠΈ
ΠΠ± ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅
ΠΠ° Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ
ΠΠ°ΠΊ ΡΠ΅ΡΠ°ΡΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ — Wiki How Π ΡΡΡΠΊΠΈΠΉ
Π£ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ΠΌ Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ (Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎΠΉ Π²Π΅Π»ΠΈΡΠΈΠ½ΠΎΠΉ) ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΡΠ±ΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΈΠ»ΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΎ Π² ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ. ΠΠ±ΡΠΎΠ»ΡΡΠ½Π°Ρ Π²Π΅Π»ΠΈΡΠΈΠ½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ x{\displaystyle x} ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ |x|{\displaystyle |x|}, Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎ (Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π½ΡΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠΌ, Π½ΠΈ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΌ ΡΠΈΡΠ»ΠΎΠΌ). Π£ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎΠΉ Π²Π΅Π»ΠΈΡΠΈΠ½ΠΎΠΉ ΡΠ΅ΡΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ Π»ΡΠ±ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅, Π½ΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π΄Π²Π° ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΈ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ.
ΠΡΡ ΡΡΡΠ°Π½ΠΈΡΡ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π»ΠΈ 40Β 744 ΡΠ°Π·Π°.
Π Π΅ΠΊΠ»Π°ΠΌΠ°
ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΠ½ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ / Π₯Π°Π±Ρ
ΠΠΈΠ·ΠΊΠΈΠΉ ΠΏΠΎΡΠΎΠ³ Π²Ρ ΠΎΠ΄Π° ΠΈ ΡΡΡΠΎΠ³ΠΎΡΡΡ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ β Π²Π΅ΡΠΈ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠ΅. ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡ Π»ΠΈΠ±ΠΎ, ΠΊΠ°ΠΊ Rust, Π±ΡΡΡΡ ΠΏΠΎ ΡΡΠΊΠ°ΠΌ borrow checkerβΠΎΠΌ β Π»ΠΈΠ±ΠΎ, ΠΊΠ°ΠΊ PHP, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅ΡΡ Π½Π΅ Π·Π°Π΄ΡΠΌΡΠ²Π°ΡΡΡΡ ΠΎ ΡΠΈΠΏΠ°Ρ ΠΈ Π±ΡΡΡΡΠΎ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠΈΡΠΎΠ²Π°ΡΡ.Β
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Π΅ΡΠ»ΠΈ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ Π³ΡΠ°ΠΌΠΎΡΠ½ΠΎ, ΡΡΠΎ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π½Π΅Π²Π°ΠΆΠ½ΡΠΌ ΠΈ ΡΠ·ΡΠΊ ΠΏΠ΅ΡΠ΅ΡΡΠ°ΡΡ ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π²Π°ΠΆΠ½Π΅Π΅ ΡΠ·ΡΠΊΠ°, ΠΈ Ρ ΠΎΡΠΎΡΠΈΠΉ ΠΊΠΎΠ΄ Π½Π° PHP Π½ΠΈΡΠ΅ΠΌ Π½Π΅ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π° Π»ΡΠ±ΠΎΠΌ Π΄ΡΡΠ³ΠΎΠΌ ΠΠΠ-ΡΠ·ΡΠΊΠ΅. ΠΡΡΠ³ΠΎΠ΅ Π΄Π΅Π»ΠΎ, ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Β«Π»ΡΠ±ΠΎΠΉ Π΄ΠΎΠΌΠΎΡ ΠΎΠ·ΡΠΉΠΊΠ΅Β» ΠΏΠΈΡΠ°ΡΡ Π½Π° PHP ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°Π΅ΡΡΡ ΠΈ ΡΠΈΡΠΊΠΎΠΌ Π½Π°Π²ΠΎΡΠΎΡΠΈΡΡ ΠΏΠΎΠ»Π½ΠΎΠ΅ Π½Π΅ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠ΅ Π±Π΅Π·ΠΎΠ±ΡΠ°Π·ΠΈΠ΅. ΠΠΎΡΡΠΎΠΌΡ Π½Π°ΠΌ Π½ΡΠΆΠ½Ρ ΡΠ°ΠΉΠΏΡ ΠΈΠ½ΡΡ, Π»ΠΈΠ½ΡΠ΅ΡΡ, ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΡ ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ. Β
ΠΠΎ Π² PHP Π΅ΡΡΡ ΠΈ Π΅ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ·ΡΡΠ½: Π² Π½ΡΠΌ Π»ΡΠ±ΠΎΠΉ ΠΊΠ»Π°ΡΡ, ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° β Π³Π»ΠΎΠ±Π°Π»ΡΠ½Ρ. ΠΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ»Π°ΡΡ ΠΈΠ· Π»ΡΠ±ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ° Π² ΠΊΠΎΠ΄Π΅, ΠΈ Π½Π΅Ρ ΡΠΏΠΎΡΠΎΠ±Π° ΡΠΊΡΡΡΡ Π΅Π³ΠΎ ΠΈΠ»ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ Π΄Π΅ΡΠ°Π»ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π³Π΄Π΅-ΡΠΎ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅. ΠΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Π² PHP Π½Π΅Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π² Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ.
ΠΠ°ΡΠ° Π½ΠΎΠ²Π°Ρ open-source ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Modulite ΠΈ Π²Π½Π΅Π΄ΡΡΠ΅Ρ Π² PHP ΠΌΠΎΠ΄ΡΠ»ΠΈ. ΠΡΠΎ ΡΠΊΠ²ΠΎΠ·Π½Π°Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ: ΠΌΡ Π²Π½Π΅Π΄ΡΡΠ΅ΠΌΡΡ Π² IDE, Π² PHPStan, Π² KPHP, Π² CI, Π² Composer β ΠΈ Π΄Π΅Π»Π°Π΅ΠΌ ΡΠ°ΠΊ, Π±ΡΠ΄ΡΠΎ Π±Ρ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π½Π°ΡΠΈΠ²Π½ΠΎ Π΅ΡΡΡ Π² ΡΠ·ΡΠΊΠ΅ PHP.
Π‘ΠΎΠ²ΡΠ΅ΠΌ Π½Π΅Π΄Π°Π²Π½ΠΎ Ρ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π» ΠΎ Modulite Π½Π° PHP Russia Π² ΡΠ°ΠΌΠΊΠ°Ρ HighLoad++. Π£ΠΆΠ΅ Π΅ΡΡΡ Π²ΠΈΠ΄Π΅ΠΎ Π΄ΠΎΠΊΠ»Π°Π΄Π° β ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π΅Π³ΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠ΅Π½ΠΈΡ, Π΅ΡΠ»ΠΈ ΡΡΠΎ ΡΠ΄ΠΎΠ±Π½Π΅Π΅, Π° ΠΊ ΡΡΠ°ΡΡΠ΅ Π²Π΅ΡΠ½ΡΡΡΡΡ Π·Π° ΡΡΡΠ»ΠΊΠ°ΠΌΠΈ.Β
Modulite + internal
ΠΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ, ΡΡΠΎ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΠ΅ΡΡΠΈ ΠΈ ΠΠ΄Π°ΠΌ. ΠΠ΅ΡΡΠΈ ΠΏΠΈΡΠ΅Ρ ΠΌΠ΅ΡΡΠ΅Π½Π΄ΠΆΠ΅Ρ (ΠΏΠ°ΠΏΠΊΠ° Messinger
), Π° ΠΠ΄Π°ΠΌ ΠΏΠΈΡΠ΅Ρ Π°Π΄ΠΌΠΈΠ½ΠΊΡ (ΠΏΠ°ΠΏΠΊΠ° Adaminka
). Π ΠΌΠ΅ΡΡΠ΅Π½Π΄ΠΆΠ΅ΡΠ΅ Π΅ΡΡΡ ΠΊΠ°Π½Π°Π»Ρ ΠΈ ΠΏΠ°ΠΏΠΊΠΈ. ΠΡΡ Π΅ΡΡΡ Π½ΠΎΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ: ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π² ΠΊΠ°Π½Π°Π», ΠΏΡΠΈ Π²ΡΡ
ΠΎΠ΄Π΅ ΠΈ Ρ. βΠΏ.
ΠΠ΄Π°ΠΌ ΠΏΠΈΡΠ΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ·Π΅ΡΠ° Π² ΠΊΠ°Π½Π°Π» ΠΈΠ· Π°Π΄ΠΌΠΈΠ½ΠΊΠΈ. ΠΠ½ Π²ΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π°ΠΏΡΡΠΌΡΡ ΡΠ·Π΅ΡΠ° Π² Π±Π°Π·Ρ ΡΠ΅ΡΠ΅Π· MsgDatabase
ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ JoinNotification
β Β«ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ΅Π»ΠΈΠ· ΡΠ΅ΡΠ΅Π· 2 ΡΠ°ΡΠ°Β» ΠΈΠ»ΠΈ Β«Π° Π² ΡΡΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΠΎΠΎΠ±ΡΠ΅?Β». ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, Π² ΡΡΠΌ? ΠΠ΅Π΄Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΆΠ΅. Π‘Π΅Π³ΠΎΠ΄Π½Ρ β ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
ΠΠ΅ΡΡΠΈ ΡΠ·Π½Π°ΡΡ ΠΏΡΠΎ ΡΡΠΎΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ». Π§ΡΠΎ, ΠΌΠΎΠ», Π·Π° Π΄Π΅Π»Π°? ΠΠ΅Π΄Ρ ΡΠΎΠ»ΡΠΊΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΠΎΡΡΠΈ ΠΊΠ°Π½Π°Π»ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ»Π°ΡΡ Π½ΠΎΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, Π²Π½Π΅ΡΠ½ΠΈΠΉ ΠΊΠΎΠ΄ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡΠ΄Π° Π»Π΅Π·ΡΡ. ΠΠ½Π΅ΡΠ½ΠΈΠΉ ΠΊΠΎΠ΄ Π½Π΅ Π·Π½Π°Π΅Ρ ΠΏΡΠΎ Π½ΡΠ°Π½ΡΡ, ΠΏΡΠΎ ΡΠ»ΡΠ΄-ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΠΈ Ρ.β―ΠΏ. Π Π°ΡΡΡΠ»ΠΊΠ° ΠΏΡΡΠ΅ΠΉ, ΡΠ°Π±ΠΎΡΠ° Ρ Π±Π°Π·ΠΎΠΉ ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ β ΡΡΠΎ ΡΠ΄Π΅Π» ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΌΠ΅ΡΡΠ΅Π½Π΄ΠΆΠ΅ΡΠ°, Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ°ΠΌ ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ. ΠΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΠ»ΠΎΡ ΠΎ, Π΅ΡΠ»ΠΈ Π²Π½Π΅ΡΠ½ΠΈΠΉ ΠΊΠΎΠ΄ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ Π½Π°ΠΏΡΡΠΌΡΡ. ΠΠΎ ΡΠ²Ρ, PHP ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°ΠΊ Π΄Π΅Π»Π°ΡΡ, ΠΈ ΡΡΠΈΠΌ Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ.
Π ΠΠ΅ΡΡΠΈ ΡΠ΅ΡΠ°Π΅Ρ: Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΏΡΠ΅ΡΠΈΡΡ! Π§ΡΠΎΠ±Ρ Π΄Π°ΠΆΠ΅ Π² Π°Π΄ΠΌΠΈΠ½ΠΊΠ΅ ΡΠ°ΠΊΠΎΠ΅ Π½Π΅ ΠΏΠΈΡΠ°Π»ΠΈ.
ΠΠ΅ΡΡΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ, ΡΡΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² β Π½Π΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈΠ»ΠΈ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΡΠ½Π½ΠΎΡΡΠ΅ΠΉ. Π ΡΡΠ°ΡΡΡΡ, Ρ Π½Π΅Π³ΠΎ Π² Π°ΡΡΠ΅Π½Π°Π»Π΅ Π΅ΡΡΡ Modulite, ΠΈ ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ ΡΠΎΠΊΡΡ: ΠΊΠ»ΠΈΠΊΠ°Π΅Ρ New β Modulite from Folderβ¦
ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ @messi-channels
ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ Channels/
. ΠΠ½ ΡΠ±ΠΈΡΠ°Π΅Ρ Π³Π°Π»ΠΎΡΠΊΠΈ Π² Π΄Π΅ΡΠ΅Π²Π΅ Notifications/
β ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π½Π΅ΠΎΡΠΌΠ΅ΡΠ΅Π½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ internal.
Π Π²ΡΠ°Π»Ρ! Π’Π΅ΠΏΠ΅ΡΡ ΠΠ΄Π°ΠΌ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ. ΠΡΠΈΠ±ΠΊΠ° Π²ΠΈΠ΄Π½Π° Π² IDE, Π° Π² ΡΡΡΡΠΊΡΡΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ @Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΈ internal-Π±Π΅ΠΉΠ΄ΠΆΠΈ.
Π€ΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π»ΠΎ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π»ΡΡ ΡΠ°ΠΉΠ» Channels/.modulite.yaml
, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΡΠΏΠΈΡΠΎΠΊ export.
Modulite + require
ΠΠΎΠ³Π΄Π° ΠΠ΅ΡΡΠΈ ΡΠΎΠ·Π΄Π°Π» ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΎΠ½ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π» export’Ρ: ΠΎΠ½ ΡΠ°ΠΊΠΆΠ΅ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π» Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ (Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, dependencies, requires β ΡΡΠΎ ΡΠΈΠ½ΠΎΠ½ΠΈΠΌΡ).
ΠΠΎΠΏΡΡΡΠΈΠΌ, Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΊ ΠΠ΅ΡΡΠΈ ΠΏΡΠΈΡΡΠ» Π΄ΠΆΡΠ½. Π£ Π΄ΠΆΡΠ½Π° Π·Π°Π΄Π°Π½ΠΈΠ΅: ΡΠ΄Π΅Π»Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ isUserSubscribed()
, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ, ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ Π»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π° ΠΊΠ°Π½Π°Π». ΠΠΊΠ΅ΠΉ, ΠΏΠΎΠ΄ΡΠΌΠ°Π» Π΄ΠΆΡΠ½, ΠΏΠΈΡΠ΅Ρ ΠΊΠΎΠ΄, Π½ΠΎ Π²ΠΈΠ΄ΠΈΡ ΠΎΡΠΈΠ±ΠΊΡ:
Π ΡΡΠΌ ΠΎΡΠΈΠ±ΠΊΠ°? Π€ΡΠ½ΠΊΡΠΈΡ currentUser()
Π½ΠΈΠΊΠΎΠ³Π΄Π° ΡΠ°Π½ΡΡΠ΅ Π½Π΅ Π²ΡΠ·ΡΠ²Π°Π»Π°ΡΡ ΠΈΠ·Π½ΡΡΡΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΎΠ½Π° Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π² requires
. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΏΡΠΈΡΠΈΠ½Π° ΠΎΡΠΈΠ±ΠΊΠΈ Π² ΡΠΎΠΌ, ΡΡΠΎ $user_id
Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΡΠ½Π°ΡΡΠΆΠΈ, Π° Π½Π΅ Π±ΡΠ°ΡΡ id ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ: Π²ΠΎΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΈ Π½Π΅ Π²ΡΠ·ΡΠ²Π°Π»Π°ΡΡ. Β
Β«ΠΠΊΠ΅ΠΉΒ», β ΠΏΠΎΠ΄ΡΠΌΠ°Π» Π΄ΠΆΡΠ½, β Β«ΠΠ΅Π»ΠΎΠ²-ΡΠΎ. ΠΠΎΠ·ΡΠΌΡ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΒ»:
ΠΡ ΠΎΡΠΈΠ±ΠΊΠΈ-ΡΠΎ Π΄ΠΆΡΠ½ ΠΈΠ·Π±Π°Π²ΠΈΠ»ΡΡ. ΠΠΎΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π»ΠΎ ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ .modulite.yaml
: Π΄ΠΎΠ±Π°Π²ΠΈΠ»Π°ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ. Π Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π²ΠΈΠ΄Π½ΠΎ Π½Π° ΡΠ΅Π²ΡΡ.
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΠ΅ΡΡΠΈ ΡΠΊΠ°ΠΆΠ΅Ρ, ΡΡΠΎ ΠΊΠΎΠ΄ Π½Π΅Π²Π΅ΡΠ½ΡΠΉ, ΠΌΠΎΠ΄ΡΠ»Ρ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠΎ Π΅ΡΠ»ΠΈ Π±Ρ Π±ΡΠ» Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ (Π½Π΅ currentUser()
, Π° ΡΡΠΎ-ΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½ΡΠΆΠ½ΠΎΠ΅), Π±ΡΠ»ΠΎ Π±Ρ ΠΎΠΊΠ΅ΠΉ. Π Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ β ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ
Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π½Π΅ ΠΏΡΠΎΠΉΠ΄ΡΡ Π½Π΅Π·Π°ΠΌΠ΅ΡΠ΅Π½Π½ΡΠΌ. Π Π΅ΡΠ»ΠΈ ΠΈ ΠΏΡΠΎΠΉΠ΄ΡΡ, ΡΡΠΎ ΠΎΡΡΠ°Π½Π΅ΡΡΡ Π² ΠΈΡΡΠΎΡΠΈΠΈ Git.
Modulite + ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅
ΠΡΠΎΠ³ΠΎ. ΠΠΎΠ΄ΡΠ»Ρ β ΡΡΠΎ ΠΎΠ±ΡΡΠ½Π°Ρ ΠΏΠ°ΠΏΠΊΠ° Ρ PHP-ΠΊΠΎΠ΄ΠΎΠΌ.
Π‘ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΠΎΠ½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π΄ΠΎΡΡΡΠΏ Β«Π²Π½ΡΡΡΡΒ» ΡΠ΅ΡΠ΅Π· export.
ΠΡΡ, ΡΡΠΎ Π½Π΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠ΅, β Π·Π½Π°ΡΠΈΡ, ΠΏΡΠΈΠ²Π°ΡΠ½ΠΎΠ΅.
Π‘ Π΄ΡΡΠ³ΠΎΠΉ, ΠΎΠ½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π΄ΠΎΡΡΡΠΏ Β«Π½Π°ΡΡΠΆΡΒ» ΡΠ΅ΡΠ΅Π· requires.
ΠΠ΅Π»ΡΠ·Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, Π½Π΅ ΡΠ°Π·ΡΠ΅ΡΠΈΠ² ΡΡΠΎ ΡΠ²Π½ΠΎ.
Modulite + ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ
Π¦Π΅Π»Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΡΡΠΈ ΡΠΎΡΠΌΡΠ»ΠΈΡΡΠ΅ΡΡΡ ΡΠ°ΠΊ: Π½Π΅ Π΄ΠΎΠΏΡΡΡΠΈΡΡ Π½Π΅ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°Π·ΡΠ°ΡΡΠ°Π½ΠΈΡ ΡΠ½ΡΡΠΎΠΏΠΈΠΈ Π²Π½ΡΡΡΠΈ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ°.
ΠΡΠ΅Π΄ΠΏΠΎΡΡΠ»ΠΊΠΈ β ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΏΠ°ΠΏΠΎΠΊ Π² ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΌ ΠΊΠΎΠ΄Π΅.
VKCOM, ΠΊΠ°ΠΊ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠ³ΡΠΎΠΌΠ½ΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡ, β ΡΡΠΎ ΠΊΠ»ΡΠ±ΠΎΠΊ ΠΊΠΎΠ΄Π° Ρ ΠΊΡΠ°ΠΉΠ½Π΅ Π²ΡΡΠΎΠΊΠΎΠΉ ΡΠ²ΡΠ·Π½ΠΎΡΡΡΡ. Π₯ΠΎΡΠ΅ΡΡΡ Π΅Π³ΠΎ ΡΠ°ΡΠΏΡΡΡΠ²Π°ΡΡ, ΡΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ Π΄ΡΡΠ³ Π΄ΡΡΠ³Ρ ΠΌΠ΅ΡΠ°ΡΡΡΡ, Π»ΠΈΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΠ²ΡΠ·ΠΈ. ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΠΎΡΡΠ²Π°ΡΡΡΡ Π²ΡΠ½ΠΎΡΠΈΡΡ ΠΏΠ°ΠΏΠΊΠΈ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ Composer-ΠΏΠ°ΠΊΠ΅ΡΡ β Π½ΠΎ ΠΏΠΎΠΊΠ° ΠΊΠΎΠ΄ Π½Π΅ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ΅Π½, ΠΏΠΎΠΊΠ° Π΅ΡΡΡ Ρ ΠΎΡΡ ΠΎΠ΄ΠΈΠ½ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΡΠ·ΠΎΠ², ΡΡΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Π Π² 100% ΡΠ»ΡΡΠ°Π΅Π² Ρ Π½Π°Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊΠ°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ. ΠΡΠ±ΠΎΠΉ ΠΊΡΡΠΏΠ½ΡΠΉ Π½Π΅ΠΉΠΌΡΠΏΠ΅ΠΉΡ ΡΠ΅ΡΠ½ΠΎ ΡΠ²ΡΠ·Π°Π½ Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ β ΠΊΠ°ΠΊ Π² ΠΏΡΡΠΌΠΎΠΌ, ΡΠ°ΠΊ ΠΈ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ.
ΠΡΠ½ΠΎΡ Π² ΠΏΠ°ΠΊΠ΅Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎ, ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΡΠΌΠ΅Π½ΡΡΠ°Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ°. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΠΎΠΊΠ° Π²Ρ ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΠ΅, Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π²ΡΡ ΡΠ°Π²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΡΠΎ Π½Π΅ Π½ΡΠΆΠ½ΠΎ, Π·Π°Π½ΠΎΠ²ΠΎ ΡΠ²ΡΠ·ΡΠ²Π°Ρ ΠΊΠΎΠ΄ Ρ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠΎΠΌ. ΠΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΌΡΡΠ»Π΅Π½Π½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π΅Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ. Π’ΠΎΡΠ½Π΅Π΅, Π½Π΅ Π±ΡΠ»ΠΎ. Π’Π΅ΠΏΠ΅ΡΡ Π΅ΡΡΡ.
ΠΠΎΠ΄ΡΠ»ΡΠ½ΠΎΡΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΡΠ°ΡΡΠΊΠΈ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ΄ΡΠΈΠ½ΡΡΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ, Π·Π°Π΄Π°Π½Π½ΡΠΌ Π²Π»Π°Π΄Π΅Π»ΡΡΠ°ΠΌΠΈ ΡΡΠΎΠ³ΠΎ ΡΡΠ°ΡΡΠΊΠ°. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΡΡ ΠΊΠΎΠ΄, ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΡΠΌΠ΅Π½ΡΡΠ°Ρ ΡΠΈΡΠ»ΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ β ΠΈ Π³Π°ΡΠ°Π½ΡΠΈΡΡΡ, ΡΡΠΎ Π½ΠΎΠ²ΡΡ Π½Π΅ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ. Π ΠΈΠ΄Π΅Π°Π»Π΅ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΡΡΠ΅ΠΌΠΈΡΡΡ ΠΊ ΠΏΠΎΠ»Π½ΠΎΠΉ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΠΎΡΡΠΈ, ΠΈ ΡΠΎΠ³Π΄Π° Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ½Π΅ΡΡΠΈ Π² ΠΏΠ°ΠΊΠ΅Ρ.
ΠΠ· Β«ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ
ΡΠ΅ΡΠ΅Π½ΠΈΠΉΒ» ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ ΡΠ°Π·Π²Π΅ ΡΡΠΎ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ @psalm-internal
ΠΈ deptrac. ΠΠ΅ΡΠ²Π°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°Π΄Π°ΡΡ Π½Π΅ΠΉΠΌΡΠΏΠ΅ΠΉΡ, Π³Π΄Π΅ ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ»ΠΈ ΠΊΠ»Π°ΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ. Π ΡΠ΅Π»ΠΎΠΌ ΡΡΠ° Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ ΡΠ΅ΡΠΈΠ»Π° Π±Ρ Π²ΠΎΠΏΡΠΎΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, Π½ΠΎ Π΅ΡΠ»ΠΈ Π·Π°Π±ΡΡΡ ΠΏΠΎΠΌΠ΅ΡΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ, ΡΠΎ Π²ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΠΏΠΎΡΠ°ΡΠ½ΡΡΡΡ. Π Π½Π°ΡΠ΅ΠΉ ΠΆΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ Π²ΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΡΠΈΠ²Π°ΡΠ½ΠΎΠ΅, Π½ΡΠΆΠ΅Π½ ΡΠ²Π½ΡΠΉ export. Π ΡΠΎΠΌΡ ΠΆΠ΅ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ requires Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π»Ρ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³Π°. ΠΡΠΎ deptrac β ΡΡΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ Π΄ΡΡΠ³ΠΎΠ΅, ΡΠ°ΡΠΏΠΈΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΡΠ°ΡΡΠΈ.
Π ΠΊΡΡΠ°ΡΠΈ, Π²Π°ΠΆΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ. ΠΠΎΠ³Π΄Π° ΠΌΠΎΠ΄ΡΠ»Ρ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΡΠΌ β Π΄Π°, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ½Π΅ΡΡΠΈ Π² ΠΏΠ°ΠΊΠ΅Ρ. Π ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π½Π΅ Π²ΡΠ½ΠΎΡΠΈΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π·Π°ΡΠ΅ΠΌ? ΠΡΠ»ΠΈ Π½Π΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ Π΅Π³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ Π² Π΄ΡΡΠ³ΡΡ ΡΠ΅ΠΏΡ, ΡΠΎ Π»ΡΡΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΎΡΡΠ°Π²ΠΈΡΡ Π² ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ΅. ΠΠ΅Π΄Ρ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ Β«Π²ΡΠ½Π΅ΡΡΠΈ Π² ΠΏΠ°ΠΊΠ΅ΡΒ» Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π»ΠΈΡΡ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Π΅ΡΡΡ Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΡ Β«ΠΏΠ°ΠΊΠ΅Ρ β ΡΡΠΎ Ρ ΠΎΡΠΎΡΠΎ, ΡΡΠΎ ΠΈΠ·ΠΎΠ»ΡΡΠΈΡΒ». Π Π΅ΡΠ»ΠΈ ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΡΡΡ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΡΡΡΡ β ΡΠΎ Composer ΡΠΆΠ΅ ΠΈ Π½Π΅ Π½ΡΠΆΠ΅Π½ Π΄Π»Ρ ΡΡΠΈΡ ΡΠ΅Π»Π΅ΠΉ.
Modulite + PHPStorm
Modulite ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½ Π² PHPStorm. ΠΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈΠ· ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°, Ρ ΠΎΡΠΊΠ΅ΡΠΌΠΈ Π΄Π΅Π»Π°ΡΡ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΈ ΡΡΠ°Π·Ρ Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ
Π ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠΌ ΠΌΠ΅Π½Ρ ΠΏΠ°ΠΏΠΊΠΈ ΠΊΠ»ΠΈΠΊΠ°Π΅ΠΌ New -> Modulite from Folderβ¦
.Β
Π’Π°ΠΌ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΈΠΌΡ ΠΌΠΎΠ΄ΡΠ»Ρ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ°ΠΏΠΊΠΈ) ΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² (Π³Π°Π»ΠΎΡΠΊΠ°ΠΌΠΈ). ΠΡΠΌΠ΅ΡΠ΅Π½Π½ΡΠ΅ β ΡΡΠΎ export, Π½Π΅ΠΎΡΠΌΠ΅ΡΠ΅Π½Π½ΡΠ΅ β internal. ΠΡ ΠΎΠΏΠ΅ΡΠΈΡΡΠ΅ΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ: Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΌΠ°ΡΠΎΠΊ Β«ΠΏΠΎ Π·Π²ΡΠ·Π΄ΠΎΡΠΊΠ΅Β» (ΡΡΠΎ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ, ΡΡΠΎ Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ). Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ β ΡΡΠΎ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠ»Π°ΡΡΡ. ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±ΡΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ, Π΄Π΅ΡΠ°ΠΉΠ½Ρ. ΠΠ°, Modulite ΠΎΠΏΠ΅ΡΠΈΡΡΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ Π³ΡΠ°Π½ΡΠ»ΡΡΠ½ΠΎ. ΠΠ°ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π΄Π΅ΡΠ°ΠΉΠ½ΠΎΠ² Π² ΠΌΠΎΠ΄ΡΠ»Π΅, ΠΈ Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ internal, ΡΠΎ Π²Π½Π΅ΡΠ½ΠΈΠΉ ΠΊΠΎΠ΄ ΠΈΡ Π½Π΅ ΡΠ²ΠΈΠ΄ΠΈΡ.
ΠΠ»Π°Π³ΠΈΠ½ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ requires ΠΈ, Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ, ΠΏΠ΅ΡΠ΅Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π΄ΡΡΠ³ΠΈΡ
ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ. ΠΠΎΡΠ»Π΅ Π½Π°ΠΆΠ°ΡΠΈΡ Β«OKΒ» ΠΎΡΠΊΡΠΎΠ΅ΡΡΡ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ .modulite.yaml
.
ΠΠ΅Π»Π°Π΅ΠΌ ΡΠΈΠΌΠ²ΠΎΠ»Ρ internal
ΠΠΎΠ·Π»Π΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΌΠΎΠ΄ΡΠ»Ρ @name Π΅ΡΡΡ Π½Π°Π΄ΠΏΠΈΡΡ exported from @name
internal in @name
). ΠΠ΅Π½ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈΠ±ΠΎ ΡΠ΅ΡΠ΅Π· Alt+Enter, Π»ΠΈΠ±ΠΎ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ ΠΏΡΡΠΌΠΎ Π½Π° ΡΡΠΎΠΌ Ρ
ΠΈΠ½ΡΠ΅. ΠΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ Π΅ΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΊΠ»Π°ΡΡΠΎΠ²: Π΅ΡΡ Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², Ρ ΠΎΠ±ΡΡΠ½ΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ Π΄Π°ΠΆΠ΅ Ρ Π΄Π΅ΡΠ°ΠΉΠ½ΠΎΠ². Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠ½ΠΈΠΌ, ΡΡΠΎ Π²ΡΠ΅ Π½ΠΎΠ²ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠ΅ (Ρ.β―ΠΊ. Π½Π΅ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Ρ) β ΠΎΠ± ΡΡΠΎΠΌ ΠΈ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ Π»ΠΈΡΠ½ΠΈΠΉ ΡΠ°Π· Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡΡ.ΠΠ΅Π»Π°Π΅ΠΌ internal ΡΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ ΠΊΠ»Π°ΡΡ
ΠΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ ΡΠΈΡΡΠ°ΡΠΈΡ: Π΅ΡΡΡ ΠΊΠ»Π°ΡΡ SortPolicy
Π² @messi-folders
. ΠΠ½, ΠΏΠΎ ΠΈΠ΄Π΅Π΅, Π΄Π΅ΡΠ°Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠΌ, Π½ΠΎ ΡΠΆΠ΅ Π³Π΄Π΅-ΡΠΎ Π²Π½Π΅ΡΠ½ΠΈΠΉ ΠΊΠΎΠ΄ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ. ΠΡΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ internal, ΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ ΡΠ»ΠΎΠΌΠ°Π΅ΡΡΡ. Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ?
ΠΡΠ²Π΅Ρ ΡΠ°ΠΊΠΎΠΉ: ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ internal, Π½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΡΠ°, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ½ ΡΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, Π² ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ (ΠΈ ΠΎΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ), Π° Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠ΄ ΡΠΆΠ΅ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ internal-ΠΊΠ»Π°ΡΡ. Π’Π°ΠΊ ΠΌΡ Π·Π°ΡΠΈΠΊΡΠΈΡΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, Π½ΠΎ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠΌ Π΅ΠΌΡ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡΡ Ρ ΡΠΆΠ΅.
ΠΠ΅ΠΉΡΡΠ²ΠΈΠ΅ Make internal in @name
Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ! ΠΠ»Π°Π³ΠΈΠ½ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΊΠΎΠ΄Π΅ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΈΡ
Π² ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
ΠΠΎΠ²ΡΠΉ ΠΊΠΎΠ΄ ΠΈ require
Π ΡΠ΅ΠΊΡΠΈΠΈ ΠΊΠΎΠ½ΡΠΈΠ³Π° require
ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ Π²ΡΠ΅ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, ΡΠ°Π·ΡΠ΅ΡΡΠ½Π½ΡΠ΅ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΈ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΠ»Π°Π³ΠΈΠ½ Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ. Π’Π°ΠΌ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΡΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ, Composer-ΠΏΠ°ΠΊΠ΅ΡΡ, Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ, Π΄Π΅ΡΠ°ΠΉΠ½Ρ ΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ, Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅.Β
ΠΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΠ»Π°Π³ΠΈΠ½ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΠΈΠ½Π°ΡΠ΅ Π²ΡΠ΄Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ. ΠΡΡΡ quick fix Π΄Π»Ρ Π΅Ρ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ yaml-ΡΠ°ΠΉΠ»ΠΈΠΊΠ° ΠΈ ΡΠ²Π½ΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ Π½ΠΎΠ²ΠΎΠΉ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ. ΠΡΠΎ Π±ΡΠ΄Π΅Ρ Π²ΠΈΠ΄Π½ΠΎ Π½Π° ΡΠ΅Π²ΡΡ ΠΈ ΠΎΡΡΠ°Π½Π΅ΡΡΡ Π² Git.
ΠΠΎΠΊΠ° Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΌΠ°Π»ΠΎ, ΠΊΠ°ΠΆΠ΄ΡΠΉ Π½ΠΎΠ²ΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π΄Π΅ΡΡΡΠΊΠΈ Π²Π½Π΅ΡΠ½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΎΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ. Π‘ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΠ³Π΄Π° Π²ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΊΠΎΠ΄Π° Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΡΠΌΠ»ΡΡΡΡΡ Π² ΠΌΠΎΠ΄ΡΠ»ΠΈ, Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π±ΡΠ΄ΡΡ Π·Π°ΠΌΠ΅Π½ΡΡΡΡΡ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ. Π ΠΈΠ΄Π΅Π°Π»Π΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΡΡΠ΅ΠΌΠΈΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ².
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π² yaml-ΡΠ°ΠΉΠ»Π΅ ΠΌΡ Π²ΡΠ΅Π³Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΡΠΈΠ²ΡΠ·Π°Π½ ΠΊ Π²Π½Π΅ΡΠ½Π΅ΠΌΡ ΠΊΠΎΠ΄Ρ β ΠΈ ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ.
ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡΠ»ΠΈ
ΠΠΎΠ΄ΡΠ»ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²Π»ΠΎΠΆΠ΅Π½Ρ Π΄ΡΡΠ³ Π² Π΄ΡΡΠ³Π°. ΠΡΠΈ ΡΡΠΎΠΌ ΠΈΠΌΡ ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡΠ»Ρ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ ΠΈΠΌΠ΅Π½ΠΈ Π΅Π³ΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ @messi
, ΡΠΎ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ @messi/folders
ΠΈ Ρ.β―ΠΏ.
Π‘ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡΠ»Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΊΠ°ΠΊ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π½Π°ΡΡΠΆΡ, ΡΠ°ΠΊ ΠΈ ΠΎΡΡΠ°ΡΡΡΡ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠΌ. ΠΡΡΡΡ Π΅ΡΡΡ ΡΡΡΡΠΊΡΡΡΠ° ΠΌΠ΅ΡΡΠ΅Π½Π΄ΠΆΠ΅ΡΠ°, Ρ ΡΡΠ΅ΠΌΡ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ:
Messinger/ Β Β Channels/Β Β @messi-channels Β Β Β Β ... Β Β Folders/ Β Β @messi-folders Β Β Β Β ... Β Β Kernel/Β Β Β @messi-kernel Β Β Β Β ...
Π ΡΠ°ΠΊΠΎΠΌ Π²ΠΈΠ΄Π΅ ΡΡΠΎ ΡΡΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ½Π½ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΠΈΠΌ Π½Π΅ΠΉΠΌΡΠΏΠ΅ΠΉΡΠΎΠΌ, Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΠΈΠΌΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌΠΈ. ΠΠ½Π΅ΡΠ½ΠΈΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ (Π² ΡΠ°ΠΌΠΊΠ°Ρ ΡΠ°Π·ΡΠ΅ΡΡΠ½Π½ΡΡ exportβΠΎΠ²). ΠΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Π² ΡΡΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π»Π΅Π·ΡΡ Π² ΡΠ΄ΡΠΎ ΠΌΠ΅ΡΡΠ΅Π½Π΄ΠΆΠ΅ΡΠ°, ΠΈ ΡΠΎΠ²Π½ΠΎ ΠΏΠΎ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ, ΡΡΠΎ ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎΠ΄ ΠΌΠ΅ΡΡΠ΅Π½Π΄ΠΆΠ΅ΡΠ° ΡΡΠ΄ΡΡΠΊΠΎΠΌ.
ΠΡΠ°ΠΌΠΎΡΠ½Π΅Π΅ β Π½Π΅ ΡΠ°ΠΊ. ΠΡΠ°ΠΌΠΎΡΠ½Π΅Π΅ β ΡΠ΄Π΅Π»Π°ΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ @messi
ΠΈ ΡΡΠΈ ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡΠ»Ρ. ΠΡΠΈ ΡΡΠΎΠΌ ΡΡΠΎΠ±Ρ @messi/kernel
Π±ΡΠ» ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠΌ.
Messinger/ Β Β @messi Β Β Channels/Β Β @messi/channels Β Β Β Β ... Β Β Folders/ Β Β @messi/folders Β Β Β Β ... Β Β Kernel/Β Β Β @messi/kernel (internal) Β Β Β Β ...
Π ΠΎΠ±ΡΠ΅ΠΌ, ΠΏΡΠΎΡΡΠΎ Π΄Π΅Π»Π°Π΅ΠΌΒ New Modulite from Folder
Π½Π° Messinger/
ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ Π³Π°Π»ΠΎΡΠΊΠΈ:
ΠΠ°ΠΊ ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅ΡΡΡ, ΠΈΠ· Π°Π΄ΠΌΠΈΠ½ΠΊΠΈ @messi/kernel
Π½Π΅Π΄ΠΎΡΡΡΠΏΠ΅Π½, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΠΊΠ°Π·Π°ΡΡ Π΅Π³ΠΎ Π²ΡΡΡΠ½ΡΡ Π² requires. Π Π²ΠΎΡ ΠΈΠ· ΠΊΠ°Π½Π°Π»ΠΎΠ² ΠΈ Π΄ΡΡΠ³ΠΈΡ
Π²Π½ΡΡΡΠ΅Π½Π½ΠΎΡΡΠ΅ΠΉ ΠΌΠ΅ΡΡΠ΅Π½Π΄ΠΆΠ΅ΡΠ° β ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ (ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΠ»Π΅Π΄ΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ Π½Π° export, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Π»ΠΎΠΆΠ΅Π½Ρ kernelβΠΎΠΌ). ΠΠΎ ΡΡΡΠΈ, Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎΠΉ Π΄Π΅ΡΠ°Π»ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠΎΠΎΠ±ΡΠ΅, ΡΡΠΎ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΉ (ΠΈ Π΄Π°ΠΆΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΠΉ) ΠΏΡΠΎΡΠ΅ΡΡ: ΡΠ½Π°ΡΠ°Π»Π° Π΄Π΅Π»Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ ΠΊΠ°ΠΊΠΈΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ Π²Π΅ΡΠΈ, Π½Π°Π·ΡΠ²Π°Ρ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π΄Π»ΠΈΠ½Π½ΠΎ, ΠΏΠΎ ΡΠΈΠΏΡ @feed-smart-blocks-proxy
. Π ΠΏΠΎΡΠΎΠΌ, ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΡΡΡ ΠΈ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΡΡΠΊΡΡΡΠ°, ΡΠΆΠ΅ ΠΎΡΠΎΡΠΌΠ»ΡΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΡΠΊΠΎΡΠ°ΡΠΈΠ²Π°Ρ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅.
Find usages Π²Π½ΡΡΡΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ
ΠΠ΄Π½Π° ΠΈΠ· Π²Π°ΠΆΠ½ΡΡ
ΡΠΈΡ ΠΏΠ»Π°Π³ΠΈΠ½Π° β Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π½Π° Π²ΠΎΠΏΡΠΎΡΡ Β«ΠΠ΄Π΅?Β» ΠΈ Β«Π§ΡΠΎ?Β». ΠΠΎΠΏΡΡΡΠΈΠΌ, Π²Ρ Π»Π°Π·ΠΈΡΠ΅ ΠΏΠΎ ΠΊΠΎΠ΄Ρ ΠΈ Π²ΠΈΠ΄ΠΈΡΠ΅ Π²ΡΠ·ΠΎΠ² currentUser()
. ΠΠΈΠ±ΠΎ ΡΠΌΠΎΡΡΠΈΡΠ΅ yaml-ΡΠ°ΠΉΠ»ΠΈΠΊ ΠΈ Π²ΠΈΠ΄ΠΈΡΠ΅ Π΅Π³ΠΎ Π² requires. Π ΡΡΠ°Π·Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π²ΠΎΠΏΡΠΎΡ: ΠΎΠΊΠ΅ΠΉ, ΠΌΠΎΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½ΠΎ Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΈΠ»ΡΠ½ΠΎ? ΠΡΠ»ΠΈ ΡΠ°ΠΌ ΠΏΠ°ΡΠ° Π²ΡΠ·ΠΎΠ²ΠΎΠ², ΡΡΠΎ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅ΡΠ΅Π΄Π΅Π»Π°ΡΡ, Π° Π΅ΡΠ»ΠΈ 100, ΡΠΎ ΠΏΠ΅ΡΠ°Π»Ρ.
Π ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠΌ ΠΌΠ΅Π½Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π°, ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ Find usages, Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠ½ΠΊΡ β Β Find usages in @{current}
:
ΠΠ»Π°Π³ΠΈΠ½ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ Π½Π°ΡΠΈΠ²Π½ΠΎΠ΅ ΠΎΠΊΠΎΡΠΊΠΎ β ΡΠΎΠ»ΡΠΊΠΎ Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠ΅ΠΉ Π²Π½ΡΡΡΠΈ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ. Π Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΡΡΡΠΈ ΡΠ°Π·, Π° Π²Π½ΡΡΡΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π²Π° β Π±ΡΠ΄Π΅Ρ Π²ΠΈΠ΄Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π²Π°.
Π Π΄ΡΡΠ³ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΠ΅ ΡΡΡΠΊΠΈΒ
ΠΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΄ΠΎΠ±ΡΡΠ²Π°, Π½ΠΎ ΡΡΠΎΠ±Ρ Π½Π΅ ΡΠ°Π·Π΄ΡΠ²Π°ΡΡ ΡΡΠ°ΡΡΡ, Π½Π΅ Π±ΡΠ΄Ρ ΠΈΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΡΡ. ΠΠΊΡΠ°ΡΡΠ΅ β Π²Π»Π°Π·ΠΈΠΌ Π² IDE Π²Π΅Π·Π΄Π΅, Π³Π΄Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ. Π ΡΡΠΎ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΠΎ, ΡΡΠΎ Π΄Π°ΠΆΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΈΡΠ°ΡΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ.
Modulite + yaml config
ΠΠ»Π°Π³ΠΈΠ½ β ΡΡΠΎ ΡΠ΄ΠΎΠ±Π½ΡΠΉ UI Π½Π°Π΄ ΠΊΠΎΠ½ΡΠΈΠ³ΠΎΠΌ (ΡΠ°ΠΉΠ»ΠΈΠΊΠΎΠΌ .modulite.yaml).
ΠΡΡ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ ΠΈ Π±Π΅Π· ΠΏΠ»Π°Π³ΠΈΠ½Π° β ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ ΡΠ΄ΠΎΠ±Π½ΠΎ.
ΠΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΉΠ»ΠΈΠΊ Ρ ΡΠ°Π½ΠΈΡΡΡ ΠΏΠΎΠ΄ GitβΠΎΠΌ, ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π½ΡΠΌ
Π²ΠΈΠ΄Π½Ρ Π½Π° ΡΠ΅Π²ΡΡ ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΈΠ»ΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ.
name: "@modulite-name" description: "..." namespace: "Some\\Namespace\\" export: - "ClassInNamespace" - "OrConcrete::CLASS_MEMBER" # and others force-internal: - "ClassInNamespace::staticMethod()" # and others require: - "@another-modulite" - "#composer/package" - "\\GlobalClass" # and others allow-internal-access: "@rpc": - "ClassAllowedForRpcModule" - "OrConcrete::method()" # and others
name β ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ΅ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ
ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ @. ΠΠΎ Π½Π΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΠΌΠΎΠ΄ΡΠ»Ρ. ΠΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΏΡΠ΅ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ, ΡΠΈΠΏΠ° @api/exceptions
. ΠΠΎΠ³Π΄Π° ΠΊΡΡΡΠΎΡ Π½Π° ΠΈΠΌΠ΅Π½ΠΈ, ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Refactor | Rename.
description β ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½Π°Ρ ΡΡΡΠΎΠΊΠ°, Π½Π° Π»ΠΎΠ³ΠΈΠΊΡ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ Π²Π»ΠΈΡΠ΅Ρ.
namespace β ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΡΠ½. Π‘Π»ΡΠΆΠΈΡ Π΄Π»Ρ ΡΠ΅Π·ΠΎΠ»Π²ΠΈΠ½Π³Π° ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΠΈΠΌΡΠ½ Π² ΠΊΠΎΠ½ΡΠΈΠ³Π΅: ΡΠ°ΠΊ, Relative\\Symbol
ΡΠ΅Π·ΠΎΠ»Π²ΠΈΡΡΡ Π² ΠΊΠ»Π°ΡΡ \Some\Namespace\Relative\Symbol
.
export β ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΌΠΎΠ΄ΡΠ»Ρ, ΡΠΏΠΈΡΠΎΠΊ ΡΡΡΠΎΠΊ. Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ, Π½Π΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ Π·Π΄Π΅ΡΡ ΡΠ²Π½ΠΎ, ΡΠ²Π»ΡΡΡΡΡ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠΌΠΈ (internal). ΠΠ΅Π· Π»ΠΈΠ΄ΠΈΡΡΡΡΠ΅Π³ΠΎ ΡΠ»Π΅ΡΠ° (ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ namespace).
someFunction()
Π΄Π΅Π»Π°Π΅Ρ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΡ Π²Π½Π΅ ΠΊΠ»Π°ΡΡΠ°; ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ ΠΏΡΠΎΡΡΠΎ Π½Π°Π±ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π² global scope.SOME_DEFINE
ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅Ρ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΠΈΠ»ΠΈ define.ClassName
Π΄Π΅Π»Π°Π΅Ρ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ; ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΡΠ΅ ΡΠ»Π΅Π½Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΡΠΎΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Ρ, ΡΠΎ Π΅ΡΡΡ Π²ΡΡΡΠΏΠ°ΡΡ Π² ΠΈΠ³ΡΡ ΠΎΠ±ΡΡΠ½ΡΠ΅ publicβ―/β―privateβ―/β―protected ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅Ρ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΡ ΡΠ»Π΅Π½ΠΎΠ². Π Π΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΏΠΎΠΊΠ°ΠΆΡ Π΄Π°Π»Π΅Π΅.
force-internal β ΡΠ±ΡΠ°ΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΡ Ρ ΡΠ»Π΅Π½ΠΎΠ² ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ². ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΊΠ»Π°ΡΡ Π² export ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊΠΎ Π²ΡΠ΅ΠΌ public-ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌ, Π° Π·Π΄Π΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡ ΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎ ΡΠΊΡΡΡΡ.
require β ΡΠΏΠΈΡΠΎΠΊ Π²Π½Π΅ΡΠ½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΈΠ· ΠΊΠΎΠ΄Π° ΠΌΠΎΠ΄ΡΠ»Ρ. ΠΡΠ»ΠΈ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½, Π±ΡΠ΄Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ°. ΠΠ΄Π΅ΡΡ ΡΡΡΠΎΠΊΠΈ ΡΠΆΠ΅ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ ΡΠΎ ΡΠ»Π΅ΡΠ°, Π²Π΅Π΄Ρ ΠΎΠ½ΠΈ Π½Π΅ Π»ΠΎΠΊΠ°Π»ΡΠ½Ρ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ namespace.
@another-modulite
ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅Ρ Π΄ΡΡΠ³ΠΎΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈ Π²ΡΠ΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π² Π½ΡΠΌ.#composer/package
ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅Ρ Composer-ΠΏΠ°ΠΊΠ΅Ρ ΠΈ Π²ΡΠ΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π² Π½ΡΠΌ.\VK\SomeClass
ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅Ρ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ (Ρ.β―Π΅. Π½Π΅ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠΉ Π½ΠΈΠΊΠ°ΠΊΠΎΠΌΡ ΠΌΠΎΠ΄ΡΠ»Ρ; Π²Π΅Π΄Ρ Π΅ΡΠ»ΠΈ ΠΎΠ½ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ, ΡΠΎ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ, Π° Π½Π΅ ΡΠ°ΠΌ ΠΊΠ»Π°ΡΡ).\someFunction()
ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅Ρ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ.\SOME_DEFINE
ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅Ρ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΠΈΠ»ΠΈ define.some_var
Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²Π½ΡΡΡΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡglobal $some_var
.
allow-internal-access Π·Π°Π΄Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ Π²Π½Π΅ΡΠ½Π΅ΠΌΡ ΠΊΠΎΠ΄Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ internal-ΡΠΈΠΌΠ²ΠΎΠ»Ρ. ΠΡΠΎ ΡΡΠΎΠΈΡ ΡΠ°ΡΠΊΡΡΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅.
Modulite + ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
ΠΠ²ΠΈΠ΄Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎ ΠΊΠΎΠ΄ Π² ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ΅ ΠΎΡΠ΅Π½Ρ ΡΠ²ΡΠ·Π½ΡΠΉ, Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΡΠ΄Π°ΡΡΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ Π²ΡΠ΅Ρ . Π§Π°ΡΡΠΎ Π±ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Ρ ΠΎΡΠ΅ΡΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠ»Π°ΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΌ, Π½ΠΎ ΡΠΆΠ΅ Π³Π΄Π΅-ΡΠΎ Π΅ΡΡΡ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. Π ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΌ ΠΎΡΡΠ°Π²Π»ΡΡΡ Π΅Π³ΠΎ Π½Π΅ Ρ ΠΎΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ Π½ΠΎΠ²ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΉ Π½Π΅ ΠΏΠΎΡΠ²Π»ΡΠ»ΠΎΡΡ.
ΠΠ΄Π΅ΡΡ Π²Π°ΠΆΠ½ΠΎ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π Ρ ΠΎΡΠ΅Ρ ΠΏΠΎΠ΄Π»Π΅Π·ΡΡ Π² ΠΌΠΎΠ΄ΡΠ»Ρ Π, ΡΠΎ Π½Π΅ Π ΠΏΠΈΡΠ΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π.
ΠΠ° ΠΏΡΠΈΠΌΠ΅ΡΠ΅. ΠΡΡΡΡ ΠΠ΄Π°ΠΌ Π² ΡΠ²ΠΎΠ΅ΠΉ Π°Π΄ΠΌΠΈΠ½ΠΊΠ΅ Π²ΡΡ-ΡΠ°ΠΊΠΈ Ρ
ΠΎΡΠ΅Ρ Π·Π°Π»Π΅Π·ΡΡ Π² ΡΠ΄ΡΠΎ ΠΌΠ΅ΡΡΠ΅Π½Π΄ΠΆΠ΅ΡΠ°, Π° ΠΎΠ½ΠΎ ΠΏΡΠΈΠ²Π°ΡΠ½ΠΎΠ΅. ΠΠΎ ΠΎΠ½ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ Ρ ΡΠ΅Π±Ρ Β«Ρ ΡΠ°Π·ΡΠ΅ΡΠ°Ρ ΡΠ΅Π±Π΅ Π»Π΅Π·ΡΡ Π² ΡΠ΄ΡΠΎΒ». Π ΠΊΠ°ΠΊ ΡΠΎΠ³Π΄Π°? Π Π²ΠΎΡ ΡΠ°ΠΊ: ΠΠ΄Π°ΠΌ ΠΈΠ΄ΡΡ ΠΊ ΠΠ΅ΡΡΠΈ ΠΈ ΠΎΠ±ΡΡΡΠ½ΡΠ΅Ρ, Π·Π°ΡΠ΅ΠΌ Π΅ΠΌΡ Π»Π΅Π·ΡΡ Π² ΠΌΠ΅ΡΡΠ΅Π½Π΄ΠΆΠ΅Ρ. Π Π²ΠΎΡ ΡΡΡ ΡΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ Π²Π°ΡΠΈΠ°Π½ΡΡ. ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ, ΠΠ΅ΡΡΠΈ ΡΡΠΎ-ΡΠΎ Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π», ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ Π² Π΅Π³ΠΎ ΠΌΠΎΠ΄ΡΠ»Π΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅ Ρ
Π²Π°ΡΠ°Π΅Ρ. Π’ΠΎΠ³Π΄Π° ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ, ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ API, ΠΈ ΠΠ΄Π°ΠΌ Π±ΡΠ΄Π΅Ρ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ. ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ, ΠΠ΅ΡΡΠΈ ΠΏΡΠΎΡΡΠΎ Π·Π°Π±ΡΠ» ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ» β ΡΠΎΠ³Π΄Π° ΠΎΠ½ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³, ΠΈ Π²ΡΡ. Π ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ, Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°ΠΌ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ corner case, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅ΡΠ°ΡΡ Π΄ΠΎΠ»Π³ΠΎ β Π²ΠΎΡ ΡΠΎΠ³Π΄Π° ΠΠ΅ΡΡΠΈ ΠΈ ΠΏΡΠ°Π²Π΄Π° ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½ΡΠΈΠ³ @messi-kernel
ΡΠ°Π·ΡΠ΅ΡΠΈΡ ΠΏΠΎΠ΄Π»Π΅Π·ΡΡ ΠΊΡΠ΄Π° Π½ΡΠΆΠ½ΠΎ. ΠΠΎ β ΡΠΎΠ»ΡΠΊΠΎ ΠΠ΄Π°ΠΌΡ, ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ° Π°Π΄ΠΌΠΈΠ½ΠΊΠΈ, ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π½ΠΈΠΊΠΎΠΌΡ.Β
Π‘Π°ΠΌΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΏΠΈΡΡΡΡΡ ΡΠ°ΠΊ. ΠΠ»ΡΡ β ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠ»Π°ΡΡ ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅ΠΌ. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ β ΡΡΠΎ ΡΠΏΠΈΡΠΎΠΊ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΡΠΎΠ²Π½ΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ Π² export. ΠΡΠΈΠΌΠ΅Ρ:
allow-internal-access: "@adaminka": - "MsgDatabase::insertUser()" - "MsgDatabase::TABLE_MESSAGES" "\\SomeGlobalClass\\itsMethod()": # more exceptions
Modulite + PHPStan
ΠΠΌΠ΅Π½Π½ΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈΒ
Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, Π² Git-Ρ ΡΠΊΠ°Ρ ΠΈ Π² Teamcity.
ΠΠΎΡΡΠΎΠΌΡ Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΊΡΠΎ-ΡΠΎ Π½Π΅ ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ IDE,
ΠΎΠ½ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΏΡΡΠΈΡΡ ΠΊΠΎΠ΄ Π² ΠΎΠ±Ρ ΠΎΠ΄ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΡΡΠΈ.
Π§ΡΠΎΠ±Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΎΠ±ΡΡΠ½ΡΡ PHP-ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ , ΠΌΡ ΡΠ΅ΡΠΈΠ»ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ Modulite Π΄Π»Ρ PHPStan. ΠΡ Π½Π°ΡΡΠΈΠ»ΠΈ Π΅Π³ΠΎ ΠΏΠ°ΡΡΠΈΡΡ yaml-ΡΠ°ΠΉΠ»Ρ, ΡΠ΅Π·ΠΎΠ»Π²ΠΈΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΡΠ΅ΡΠ΅Π· ΡΠ΅ΡΠ»Π΅ΠΊΡΠΈΡ, Π° ΠΏΠΎΡΠΎΠΌ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΡΡΡ Π½Π° ΠΊΠ»Π°ΡΡΠ°Ρ , ΠΌΠ΅ΡΠΎΠ΄Π°Ρ ΠΈ ΡΡΠ½ΠΊΡΠΈΡΡ β ΠΏΠΎ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ, ΡΡΠΎ ΠΈ Π² IDE.Β
ΠΠ· Π½Π΅ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎΠ³ΠΎ β ΡΡΠΎ PHPStan-ΠΊΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΠΊ ΠΈ Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ ΠΏΠΎΠ±Π΅Π΄ΠΈΡΡ. ΠΠΎΠ΄ΡΠ»ΡΠ½ΠΎΡΡΡ ΡΡΡΡΠΎΠ΅Π½Π° ΡΠ°ΠΊ, ΡΡΠΎ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ yaml-ΠΏΡΠ°Π²ΠΈΠ» ΠΌΠΎΠ³ΡΡ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ ΠΈΠ»ΠΈ ΠΈΡΡΠ΅Π·Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ Π² PHP-ΠΊΠΎΠ΄Π΅, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΠΌΠ΅Π½ΡΠ»ΡΡ. ΠΠΎ PHPStan Π½Π΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Π°Π½Π°Π»ΠΈΠ· Π½Π° Π½Π΅ΡΡΠΎΠ½ΡΡΡΡ ΡΠ°ΠΉΠ»Π°Ρ , ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ΄Π°Π²Π°ΡΡ ΡΡΠ°ΡΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ. ΠΡΠ»ΠΈ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΠΎΡ ΠΎΡ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΈΠ·ΡΡΠ°ΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈ ΡΠ²ΡΠ·Π°ΡΡΡΡ Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ PHPStan. Π ΠΏΠΎΠΊΠ° ΠΏΡΠΈ ΡΠ±ΡΠΎΡΠ΅ ΠΊΠ΅ΡΠ° ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π²ΡΠ΅Π³Π΄Π°.
ΠΡΠΈΠ±ΠΊΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Π²ΡΠ΄Π°ΡΡΡΡ Π² ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎΠΌ Π΄Π»Ρ PHPStan Π²ΠΈΠ΄Π΅:
Modulite + KPHP
KPHP ΠΏΠΎΠΌΠΈΠΌΠΎ php-ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΎΠ² ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΈΡΠ°Π΅Ρ yaml-ΡΠ°ΠΉΠ»ΠΈΠΊΠΈ. ΠΡΠ»ΠΈ ΠΎΠ½ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΏΡΠ΅ΡΡΠ²Π°Π΅ΡΡΡ Π² ΡΠ°ΠΌΠΎΠΌ Π½Π°ΡΠ°Π»Π΅. ΠΠ°Π»Π΅Π΅ ΠΈΠ΄ΡΡ ΠΎΠ±ΡΡΠ½ΡΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΊΠΎΠ΄Π° Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΡΡΠΈ. ΠΠ· Π½Π΅ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎΠ³ΠΎ β Π°Π½Π°Π»ΠΈΠ· ΠΊΠΎΠ΄Π° ΡΠ°Π·Π±ΠΈΡ Π½Π° ΡΡΠ°ΠΏΡ: ΡΠ½Π°ΡΠ°Π»Π° Π²ΡΡΡΠ°ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ, ΠΏΠΎΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ PHPDoc, ΠΏΠΎΡΠΎΠΌ ΡΠ²ΡΠ·ΠΊΠ° ΡΡΠ½ΠΊΡΠΈΠΉ (call graph) ΠΈ Ρ.βΠ΄. ΠΠΎΡΡΠΎΠΌΡ, Π΅ΡΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΏΡΠΈ ΠΈΠ½Π»Π°ΠΉΠ½Π΅ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ, KPHP Π½Π΅ ΠΏΠΎΠΉΠ΄ΡΡ Π΄Π°Π»ΡΡΠ΅. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ Π½Π΅Π²Π°Π»ΠΈΠ΄Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΊΠ»Π°ΡΡΡ Π² ΡΠ°ΠΉΠΏΡ ΠΈΠ½ΡΠ°Ρ , ΠΎΠ½ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ·ΠΎΠ²Ρ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΡΡΠ°ΡΠΈ, KPHP ΡΠ°ΡΡΠ΅Π½ΠΈΠ²Π°Π΅Ρ Composer-ΠΏΠ°ΠΊΠ΅ΡΡ ΠΊΠ°ΠΊ Π½Π΅ΡΠ²Π½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΡΠ°ΠΊ ΡΡΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ Π½ΡΠΆΠ½ΡΠ΅ requires, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΎ, ΡΡΠΎ ΠΏΠ°ΠΊΠ΅ΡΡ Π½Π΅ Π»Π΅Π·ΡΡ Π² ΠΊΠΎΠ΄ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ°.
ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π»Ρ KPHP Π±ΡΠ»Π° ΠΏΡΠΈΠ΄ΡΠΌΠ°Π½Π° ΠΈ ΡΠ΄Π΅Π»Π°Π½Π° ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ. Π Π»ΠΈΡΡ ΠΏΠΎΡΠΎΠΌ ΡΡΡΠΎΡΠ²ΡΠ°ΡΡΡ Π²Π΅ΡΡΠΈΡ Π±ΡΠ»Π° Π²ΡΠ»ΠΎΠΆΠ΅Π½Π° ΠΊΠ°ΠΊ PHPStan-ΠΏΠ»Π°Π³ΠΈΠ½, ΡΡΡΡ Π»ΠΈ Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΏΠ°ΡΡΠΎΠΉ ΠΏΠ»ΡΡΠΎΠ²ΠΎΠΉ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. ΠΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΈ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΡΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ: Π² IDE, Π² KPHP ΠΈ Π² PHPStan. ΠΠΎ ΠΎΡ ΡΡΠΎΠ³ΠΎ Π½ΠΈΠΊΡΠ΄Π° Π½Π΅ ΡΠΉΠ΄ΡΡΡ.
Modulite + Π΄Π΅ΠΏΠ»ΠΎΠΉ
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ΅Π·ΡΠΌΠΈΡΡΠ΅ΠΌ, Π³Π΄Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Modulite ΠΈ ΠΊΠ°ΠΊ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΡΠΈ Π΄Π΅ΠΏΠ»ΠΎΠ΅:
Π² KPHP ΠΏΠΎΠ»Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² VKCOM Π½Π° ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½Π΅;
Π² PHPStan ΡΠ° ΠΆΠ΅ Π²Π΅ΡΡΠΈΡ, Ρ Π½Π°Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ PHPStan-Π±Π°Π³ΠΈ;
Π² noverify Π½Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ, Π½ΠΎ ΠΎΠ½Π° ΠΈ Π½Π΅ Π½ΡΠΆΠ½Π°;
Π² Psalm Π½Π΅ Π΄Π΅Π»Π°Π»ΠΈ, Π½ΠΎ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ;
Π² Git Hooks ΠΈ TeamCity-ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π°Ρ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ Π»ΠΈΠ±ΠΎ PHPStan, Π»ΠΈΠ±ΠΎ KPHP;
Π² PHPStorm Π²ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠΌ;
Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ IDE Π½Π΅ Π΄Π΅Π»Π°Π»ΠΈ, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ (Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅).
Modulite + Composer
Modulite ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ΅.
ΠΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Ρ Π»ΡΠ±ΠΎΠΉ Composer-ΠΏΠ°ΠΊΠ΅Ρ:
ΠΏΠΎΡΠ΅ΠΌΡ Π±Ρ Π½Π΅ ΠΏΠΈΡΠ°ΡΡ Π΅Π³ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΠΎΡΡΠΈ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠΌΠΈ?
Π Π΄Π°ΠΆΠ΅ Π·Π°Π΄Π°Π²Π°ΡΡ export Ρ ΠΏΠ°ΠΊΠ΅ΡΠ°, ΡΠ΅Π³ΠΎ Π² Composer Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅Ρ.
Π€ΠΈΠ»ΠΎΡΠΎΡΠΈΡ ΡΠ°ΠΊΠ°Ρ: ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Ρ ΠΏΠ°ΠΊΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠΆΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΡΡΡΡ. ΠΠ°ΠΊ ΠΈ Π² ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ΅, ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΏΠ°ΠΏΠΎΡΠΊΠΈ ΡΠΎ ΡΠ²ΠΎΠΈΠΌΠΈ ΠΎΠ±Π»Π°ΡΡΡΠΌΠΈ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ requires ΠΈ Ρ.β―ΠΏ. ΠΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄, ΡΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ².
ΠΠ° ΠΏΡΠΈΠΌΠ΅ΡΠ΅. ΠΡΡΡΡ ΠΠ΅ΡΠ°ΡΠΈΠΌ ΠΏΠΈΡΠ΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ Π΄Π»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΠΈ Π² ΡΠ΅ΠΊΡΡ. ΠΡΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ voice-text
, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠΆΠ΅ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΌΠΎΠ΄ΡΠ»ΠΈ (Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, @impl
):
ΠΠ°ΠΊ ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅ΡΡΡ, Π² EmojiTable
Π½Π΅Π»ΡΠ·Ρ Π·Π°Π»Π΅Π·ΡΡ ΡΠ½Π°ΡΡΠΆΠΈ, ΡΡΠΎ Π²Π΅Π΄Ρ internal. Π‘Π°ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ @impl
ΠΎΠ±ΡΠ·Π°Π½ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΡΡ requires ΠΈ Ρ.β―ΠΏ. Π ΠΎΠ±ΡΠ΅ΠΌ, ΠΏΠ°ΠΊΠ΅Ρ ΠΠ΅ΡΠ°ΡΠΈΠΌΠ° Π½ΠΈΡΠ΅ΠΌ Π½Π΅ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
Π ΡΠ΅ΠΏΠ΅ΡΡ ΠΠ΅ΡΡΠΈ Π²Π½Π΅Π΄ΡΡΠ΅Ρ ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΠΊΡ Π°ΡΠ΄ΠΈΠΎΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. ΠΠ½ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΏΠ°ΠΊΠ΅Ρ ΡΠ΅ΡΠ΅Π· Composer, ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎ. Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π²Π½ΡΡΡΠΈ ΠΌΠ΅ΡΡΠ΅Π½Π΄ΠΆΠ΅ΡΠ°, Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ²Π½ΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ #vk/voice-text
Π² requires (ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° ΠΏΠ»Π°Π³ΠΈΠ½ ΡΡΠΎ ΡΠ°ΠΌ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡ ΠΈ Π²ΡΡΠ°Π²ΠΈΡ).
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΏΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ° Π² ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ ΠΎΠ½ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π½Π΅ΡΠ²Π½ΡΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ. Π‘ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΡΡΠΈ, ΠΏΠ°ΠΏΠΊΠ° vendor/vk/voice-text
β ΡΡΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ #vk/voice-text
. ΠΡΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΏΡΠ΅ΡΠΈΠΊΡΠΈΡΡΡΡΡΡ: ΡΠ°ΠΊ, ΠΌΠΎΠ΄ΡΠ»Ρ @impl
Π²Π½ΡΡΡΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΈΠΌΠ΅Π΅Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ #vk/voice-text/@impl
Π²Π½ΡΡΡΠΈ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ°. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ° ΠΈΠΌΡΠ½. Π£ ΠΏΠ°ΠΊΠ΅ΡΠ° Π½Π΅ Π·Π°Π΄Π°Π½ export, ΠΈ Π΄Π»Ρ Π½Π΅ΡΠ²Π½ΡΡ
ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ° Β«Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ Π²ΡΡΒ». ΠΠΏΡΠΎΡΠ΅ΠΌ, Ρ ΠΌΠΎΠ΄ΡΠ»Ρ #vk/voice-text/@impl
ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ export Π²ΠΏΠΎΠ»Π½Π΅ ΡΠ΅Π±Π΅ Π΅ΡΡΡ, ΠΈ Π²ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π±ΡΠ΄ΡΡ ΡΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ.
Π’Π°ΠΊ, Π΅ΡΠ»ΠΈ ΠΠ΅ΡΡΠΈ ΡΠ΅ΡΠΈΡ Π·Π°Π»Π΅Π·ΡΡ Π²Π½ΡΡΡΡ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΠ΅ΡΠ°ΡΠΈΠΌΠ°, Π·Π°ΡΠΈΡΡΠ½Π½ΠΎΠΉ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ Π²Π½ΡΡΡΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ°, ΠΎΠ½ ΠΏΠΎΠ»ΡΡΠΈΡ ΠΎΡΠΈΠ±ΠΊΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ:
ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, Modulite ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΡΡΠΈΡΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Composer: Π΄Π°ΠΆΠ΅ Π² ΠΊΠΎΡΠ½Π΅ ΠΏΠ°ΠΊΠ΅ΡΠ° Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ²Π½ΡΡ
exportβΠΎΠ² ΠΈΠ· Π½Π΅Π³ΠΎ. ΠΠ΅Π»Π°Π΅ΡΡΡ ΡΡΠΎ ΡΠ°ΠΊ: ΡΡΠ΄ΠΎΠΌ Ρ composer.json
ΡΠΎΠ·Π΄Π°ΡΠΌ ΡΠ°ΠΉΠ»ΠΈΠΊ .modulite.yaml
.
name
="<composer_root>"
.namespace
="The\\Same\\As\\PSR4\\"
.export
ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΠ΅ΠΌ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎ.force-internal
ΡΠΎΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.require
ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΏΡΡΡΡΠΌ, ΠΎΠ½ Π²ΡΡ ΡΠ°Π²Π½ΠΎ Π±Π΅ΡΡΡΡΡ ΠΈΠ· composer.json.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΠ΅ΡΠ°ΡΠΈΠΌ ΡΠΊΠ°ΠΆΠ΅Ρ TextToSpeech
ΠΈ WaveMultiplier
Π²Π½ΡΡΡΠΈ export, ΠΏΠΎΡΡΠΎΠΌΡ Transliteration
Π±ΡΠ΄Π΅Ρ internal:
Π’Π΅ΠΏΠ΅ΡΡ ΠΈΠ· ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ° Π½Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Transliteration
. Π ΠΊ Π½Π΅ΠΉΠΌΡΠΏΠ΅ΠΉΡΡ VK\VoiceText\impl
ΡΠΎΠΆΠ΅ Π½Π΅Ρ. Π Π²ΠΎΡ Π΅ΡΠ»ΠΈ Π±Ρ ΠΠ΅ΡΠ°ΡΠΈΠΌ ΡΠΏΠΎΠΌΡΠ½ΡΠ» @impl
Π² export, ΡΠΎ Π±ΡΠ» Π±Ρ (Π² ΡΠ°ΠΌΠΊΠ°Ρ
ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ
ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² @impl
ΠΎΠΏΡΡΡ ΠΆΠ΅).
Modulite + Deptrac
Π‘ΡΠ°Π·Ρ ΠΎΡΠ²Π΅ΡΡ Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ Π²ΡΠΎΠ΄Π΅ Β«ΡΠ°ΠΊ Π²Π΅Π΄Ρ Π΅ΡΡΡ Deptrac, ΡΡΠΎ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅Β». ΠΠ΅ ΠΎΠ΄Π½ΠΎ. Modulite ΠΈ Deptrac ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π½Ρ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ Π²Π΅ΡΠ΅ΠΉ ΠΈ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΠΌΠΈ.
ΠΠ»Π°Π²Π½Π°Ρ ΡΠ΅Π»Ρ Modulite β Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΠΊΡΡΡΡ ΡΠ½ΡΡΠΎΠΏΠΈΡ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ° ΠΈ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ Π΅ΠΉ Π±Π΅ΡΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡΡΡ. ΠΠ°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΡΠ΅ΠΊΡΡΠΈΠΌΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΅ΡΡΡ Π² ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅, β Π° ΠΏΠΎΡΠΎΠΌ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΠΎΡ Π½ΠΈΡ ΠΈΠ·Π±Π°Π²Π»ΡΡΡΡΡ, ΡΠ°ΡΠΏΡΡΡΠ²Π°Ρ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½Ρ Π΄Π²Π° Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ: Π²Π½ΡΡΡΡ (export) ΠΈ Π½Π°ΡΡΠΆΡ (require). Π’Π°ΠΊ ΡΠΆ Π²ΡΡΠ»ΠΎ, ΡΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½Π°Ρ Π·Π°Π΄Π°ΡΠ° Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π²ΡΡΠ°ΠΆΠ°Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ Ρ ΠΏΡΠΈΠΌΠ΅ΡΡΠΌΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ. Π ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΎ Π²ΡΡ ΠΎΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π²Π»Π΅Π·ΡΡ Π² IDE.Β
ΠΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π² IDE β ΡΡΠΎ ΠΈ ΠΏΡΠ°Π²Π΄Π° Π²Π°ΠΆΠ½ΠΎ, Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΡΠΎ Π³Π»Π°Π²Π½ΠΎΠ΅ Π΄Π»Ρ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. ΠΠ»ΡΡ ΡΠ°ΠΉΠ»ΠΈΠΊΠΈ ΠΏΠΎΠ΄ GitβΠΎΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΡΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ΅ΠΌΠΈ code owners, Π² ΡΡΡΠΌ ΠΊΠΎΠ΄Π΅ ΠΎΠ½ΠΈ Π»Π΅ΠΆΠ°Ρ, Π° Π½Π΅ ΠΎΠ΄Π½ΠΈΠΌ ΠΎΠ±ΡΠΈΠΌ ΡΡΠ°ΡΠΈΠΎΠ½Π°ΡΠ½ΡΠΌ ΠΊΠΎΠ½ΡΠΈΠ³ΠΎΠΌ. ΠΡΠΎ Π²Π°ΠΆΠ½ΠΎ ΠΏΡΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ ΠΏΡΠ°Π² ΠΌΠ΅ΡΠΆΠ° Π²Π΅ΡΠΎΠΊ.Β
Deptrac β ΡΡΠΎ ΠΏΡΠΎ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΡΠ΅ ΡΠ»ΠΎΠΈ (Ρ Π°-Ρ Π°, Π±ΡΠ΄ΡΠΎ Π±Ρ Π² ΠΊΠ»ΡΠ±ΠΊΠ΅ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ° Ρ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ ΡΠΈΠΊΠ»ΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎΡΡΡΡ Π΅ΡΡΡ ΡΠ»ΠΎΠΈ). Π£ΡΠ»ΠΎΠ²Π½ΠΎ, ΠΎΠΏΠΈΡΠ°ΡΡ Β«ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π»Π΅Π·ΡΡ Π² ΠΌΠΎΠ΄Π΅Π»ΠΈΒ», ΠΎΠΏΠ΅ΡΠΈΡΡΡ Π½Π΅ΠΉΠΌΡΠΏΠ΅ΠΉΡΠ°ΠΌΠΈ ΠΈ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ ΠΏΠΎ ΠΌΠ°ΡΠΊΠ΅ (Π²ΠΎΡ ΡΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΊΠ°ΠΊ ΡΠ°Π· Π½Π΅ ΠΎΠΏΠΈΡΠ΅ΡΡ). ΠΡΠΎ Π½Π΅ ΠΏΡΠΎ internal, Π½Π΅ ΠΏΡΠΎ ΡΠ²Π½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΈ ΡΠΆ ΡΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅ Π½Π΅ ΠΏΡΠΎ Π·Π°ΠΌΠ΅Π½Ρ ComposerβΠ° Π² ΠΏΠ»Π°Π½Π΅ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ ΠΊΠΎΠ΄Π°. Deptrac ΡΠΊΠΎΡΠ΅Π΅ ΠΏΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Β«ΡΠ°Π·ΡΠ΅ΡΡΠ½Π½ΡΠ΅ ΠΏΠ°ΡΡΠ΅ΡΠ½Ρ Π²ΡΠ·ΠΎΠ²ΠΎΠ²Β». ΠΡΠ»ΠΈ ΡΠΆ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ, ΡΠΎ Deptrac Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΡΠ²Π΅ΡΠ°, ΡΠ΅ΠΌ Π½Π° ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΡΡΡ.
Modulite + ΡΠ²Π΅ΡΠ°
ΠΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΡΠ²Π΅ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Ρ ΡΠΎΠΆΠ΅ ΡΠΆΠ΅ ΠΏΠΈΡΠ°Π».Β
ΠΠ»Π°Π²Π½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ β Π΄Π»Ρ ΡΠ²Π΅ΡΠΎΠ² Π½Π΅ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ Π΄Π»Ρ IDE, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ°ΠΌ Π½ΡΠΆΠ΅Π½ ΠΏΠΎΠ»Π½ΡΠΉ call graph, ΡΠ²Π΅ΡΠ° ΡΠΌΠ΅ΡΠΈΠ²Π°ΡΡΡΡ ΡΠΊΠ²ΠΎΠ·Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠ΅ ΡΠ΅ΠΏΠΎΡΠΊΠΈ Π²ΡΠ·ΠΎΠ²ΠΎΠ². Π Π² ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ Π»ΡΠ±ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½ΡΠΆΠ½Ρ Π²ΡΠ΅Π³ΠΎ Π΄Π²Π° ΡΠ΅Π±ΡΠ°, Π·Π°ΡΠ°Π½Π΅Π΅ ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅. Π ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π° Π(1) ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ β ΡΡΠΎ ΡΠΆΠ΅ Π»Π΅Π³ΠΊΠΎ Π²ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π² PHPStorm ΠΈ PHPStan.
Π ΠΎΠ±ΡΠ΅ΠΌ, ΡΠ²Π΅ΡΠ° β ΡΡΠΎ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠ°Ρ ΠΈ ΠΊΡΠ°ΡΠΈΠ²Π°Ρ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ. Π Modulite β Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ½Π°Ρ.
Modulite + ΡΡΠΈΠΌΠΎΠ»ΠΎΠ³ΠΈΡ
Π Π°ΡΡΠΊΠ°ΠΆΡ, ΠΏΠΎΡΠ΅ΠΌΡ Modulite Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊ π
Π― Π½Π΅Π΄ΠΎΠ»ΡΠ±Π»ΠΈΠ²Π°Ρ ΡΠ»ΠΎΠ²ΠΎ Β«ΠΌΠΎΠ΄ΡΠ»ΡΒ», ΠΎΠ½ΠΎ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΎΠ±ΡΠ΅Π΅ ΠΈ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ Π²Π΅Π·Π΄Π΅. ΠΠ΅ Ρ ΠΎΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ Π½Π°ΡΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΏΡΡΠ°Π»ΠΈ Ρ JS-ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ, Ρ Composer-ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. Π’Π°ΠΊ ΡΡΠΎ ΠΈΡΠΊΠ°Π»ΠΈ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ ΠΏΠΎΡ ΠΎΠΆΠ΅Π΅, Π½ΠΎ Π² ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅. Π ΡΡΠΎΠ±Ρ Π±ΡΠ»Π° ΡΠ²ΡΠ·Ρ Ρ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠΎΠΌ β Π²ΡΡ-ΡΠ°ΠΊΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΏΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ Π΄Π»Ρ Π½Π΅Π³ΠΎ.
ΠΠΎΠ΄ΡΠ»ΠΈΡ β ΡΡΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Π²Π½ΡΡΡΠΈ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ°. ΠΠΎΠΆΠ½ΠΎ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΈ Β«ΠΌΠΎΠ΄ΡΠ»ΡΒ», ΡΡΠΈΡΠ°Π΅ΠΌ ΡΡΠΎ ΡΠΈΠ½ΠΎΠ½ΠΈΠΌΠ°ΠΌΠΈ.
Modulite + Π²Ρ
ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, Π²ΡΠ΅ Π½Π°ΡΠΈ Π½Π°ΡΠ°Π±ΠΎΡΠΊΠΈ Π»Π΅ΠΆΠ°Ρ Π½Π° GitHub.
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΡΡΠ°Π²ΠΈΠΌ ΠΏΠ»Π°Π³ΠΈΠ½ Π² IDE Π²ΠΎΡ ΠΎΡΡΡΠ΄Π°.
ΠΠΎ-Π²ΡΠΎΡΡΡ , ΡΠΊΠ°ΡΠΈΠ²Π°Π΅ΠΌ ΡΠ΅ΠΏΡ modulite-example-project. ΠΡΠΎ PHP-ΠΏΡΠΎΠ΅ΠΊΡΠΈΠΊ, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅. ΠΠ½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΡΠΈΠ±ΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΈΠ΄Π½Ρ ΠΈ Π² IDE, ΠΈ Π² PHPStan, ΠΈ Π² KPHP. ΠΠΎΠΆΠ½ΠΎ ΠΎΡΠΊΡΡΡΡ, ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ, Π² ΡΡΠΌ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΏΠΎΡΠΈΠ½ΠΈΡΡ β Π² ΠΎΠ±ΡΠ΅ΠΌ, ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΠΊΠΎΡΡΠΊΠΈ ΠΠ΅ΡΡΠΈ ΠΈ ΠΠ΄Π°ΠΌΠ°.
Π ΠΏΠΎΡΠΊΡΠΎΠ»Π»ΠΈΡΡ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΊΡΠ°ΡΠΈΠ²ΡΠΉ Π»Π΅Π½Π΄ΠΎΡ β Π½Π° Π½ΡΠΌ ΡΠ° ΠΆΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΡΡΠΎ ΠΈ Π² ΡΡΠ°ΡΡΠ΅, Π½ΠΎ ΡΡΡΡ Π² Π΄ΡΡΠ³ΠΎΠΉ ΡΠΎΡΠΌΠ΅.
Modulite + ΡΡΡΠ»ΠΊΠΈ
ΠΠΎΠ΄Π²ΠΎΠ΄ΠΈΠΌ ΠΈΡΠΎΠ³ΠΈ: Modulite Π΄ΠΎΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ·ΡΠΊ PHP ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ,
Π½Π΅ Π²ΠΌΠ΅ΡΠΈΠ²Π°ΡΡΡ Π² Π΅Π³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, Π° ΡΠ΄ΠΎΠ±Π½ΠΎ Π½Π°Ρ ΠΎΠ΄ΡΡΡ ΡΡΠ΄ΠΎΠΌ.
ΠΠ½ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ ΠΊΠ°ΠΊ Π΄Π»Ρ ΡΡΠ°ΡΡΠ° Π½ΠΎΠ²ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², ΡΠ°ΠΊ ΠΈ ΡΡΠΎΠ±Ρ
Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ° ΠΈ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎ.
ΠΡΠΎΠ΄ΡΠ±Π»ΠΈΡΡΡ Π·Π΄Π΅ΡΡ Π²ΡΠ΅ Π½ΡΠΆΠ½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΠΈΠ΄Π΅ΠΎ Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ Π²ΡΡΡΡΠΏΠ»Π΅Π½ΠΈΡ:
ΠΠΈΠ΄Π΅ΠΎ Ρ HighLoad++: Β«Π§Π΅ΡΡΠ½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π²Π½ΡΡΡΠΈ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ°, ΠΈΠ»ΠΈ ΠΠΎΠ³Π΄Π° Composer Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡΒ»
ΠΠ΅Π½Π΄ΠΈΠ½Π³ ΠΏΡΠΎ Modulite.
Modulite GitHub.
Modulite plugin for PHPStan.
modulite-example-project.
KPHP β Π½Π°Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ.
Π§Π°Ρ Π² ΡΠ΅Π»Π΅Π³ΡΠ°ΠΌΠ΅ β KPHP (Unofficial). ΠΠ΄Π΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°ΡΡ Π»ΡΠ±ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ.
r — ΠΠΎΠ΄ΡΠ»Ρ Π²Π½ΡΡΡΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ Π±Π»Π΅ΡΡΡΡΠΈΠΉ
Π― ΠΏΡΡΠ°ΡΡΡ Π²ΡΠ·Π²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈΠ·Π½ΡΡΡΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈ Ρ ΠΌΠ΅Π½Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΡΠΎΡ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΊΠΎΠ΄ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΎΠ½ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ·Π΄Π°Π΅Ρ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠ΅Π΅ ΠΎΠΊΠ½ΠΎ. ΠΠ½ΡΡΡΠΈ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠ΅Π³ΠΎ ΠΎΠΊΠ½Π° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π³ΡΠ°ΡΠΈΠΊ ΠΈ ΠΏΠΎΠ»Π·ΡΠ½ΠΎΠΊ Π²Π²ΠΎΠ΄Π°. ΠΡΠΏΠ»ΡΠ²Π°ΡΡΠΈΠΉ ΡΡΠΆΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π² ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅.
Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° (Π±Π»Π΅ΡΡΡΡΠ°Ρ) Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° (Π±Π»Π΅ΡΡΡΡΠΈΠ΅ Π²ΠΈΠ΄ΠΆΠ΅ΡΡ) uiForModal <<- ΡΡΠ½ΠΊΡΠΈΡ (ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ) { Π½Ρ <- ΠΠ‘ (ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ) ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅Π³ΠΎΠ²( ΡΠ»ΡΠΈΠ΄Π ΠΎΡ( plotOutput(outputId = ns("ΡΡΠΆΠ΅Ρ")), ΡΠ»Π°ΠΉΠ΄Π΅ΡΠΠ²ΠΎΠ΄( inputId =ns("ΠΊΠ»Π°ΡΡΠ΅ΡΡ"), label = "ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠ²", ΠΌΠΈΠ½. = 2, ΠΌΠ°ΠΊΡ. = 6, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ = 3, ΡΠΈΡΠΈΠ½Π° = "100%" ) ) ) } serverForModal <<- ΡΡΠ½ΠΊΡΠΈΡ (Π²Π²ΠΎΠ΄, Π²ΡΠ²ΠΎΠ΄, ΡΠ΅Π°Π½Ρ) { output$plot <- renderPlot({ ΠΏΠ΅ΡΠ°ΡΡ (Π³ΠΎΠ»ΠΎΠ²Π° (ΡΠ°Π΄ΡΠΆΠ½Π°Ρ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ°)) ΡΡΠ°ΡΡΠΎΠΊ(Π§Π΅ΠΏΠ°Π».Π¨ΠΈΡΠΈΠ½Π° ~ Π§Π°ΡΠ΅Π»ΠΈΡΡΠΈΠΊ.ΠΠ»ΠΈΠ½Π°, data = ΠΈΡΠΈΡ, col = Π²ΠΈΠ΄Ρ, ΡΡ = 20, ΡΡΠΊΡ = 2) ΡΠΎΡΠΊΠΈ (kmeans (ΡΠ°Π΄ΡΠΆΠΊΠ° [ 1: 2], input $ ΠΊΠ»Π°ΡΡΠ΅ΡΡ) $ ΡΠ΅Π½ΡΡΡ, pch = 4, cex = 4, lwd = 4) }) } ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ <- ΡΠ»ΡΠΈΠ΄Π½Π°Ρ ΡΡΡΠ°Π½ΠΈΡΠ°( actionButton("showPlot", "showPlot") ) ΡΠ΅ΡΠ²Π΅Ρ <- ΡΡΠ½ΠΊΡΠΈΡ (Π²Π²ΠΎΠ΄, Π²ΡΠ²ΠΎΠ΄) { Π½Π°Π±Π»ΡΠ΄Π°ΡΡEvent (Π²Ρ ΠΎΠ΄ $ showPlot, { show_alert( title = "ΠΠ΅ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ", ΡΠ΅ΠΊΡΡ = ΡΠ΅Π³ΠΈ $ div ( uiForModal("test1") ), HTML = ΠΠ‘Π’ΠΠΠ, ΡΠΈΡΠΈΠ½Π° = "80%" ) }) callModule(serverForModal, "test1") } runApp(shinyApp(ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΡΠ΅ΡΠ²Π΅Ρ))
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ, ΠΊΠΎΠ³Π΄Π° Ρ ΠΏΡΡΠ°ΡΡΡ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ. ΠΠΎΠ΄ Π½ΠΈΠΆΠ΅ - ΠΌΠΎΡ Π½Π΅ΡΠ΄Π°ΡΠ½Π°Ρ ΠΏΠΎΠΏΡΡΠΊΠ° ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ. Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΊΠ°ΠΊ-ΡΠΎ ΡΠ²ΡΠ·Π°Π½Π° Ρ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΠΌ ΠΈΠΌΠ΅Π½. Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄Π΅ ΠΊΠ½ΠΎΠΏΠΊΠ° Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Ρ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠΈΠΌ ΠΎΠΊΠ½ΠΎΠΌ ΠΈ ΠΏΠΎΠ»Π·ΡΠ½ΠΊΠΎΠΌ, Π½ΠΎ Π³ΡΠ°ΡΠΈΠΊ Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ. ΠΠΎΡΡΠΎΠΌΡ Ρ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈΠΌΠ΅Π½ ΡΠ΅ΡΠ²Π΅ΡΠ° Π΄Π»Ρ ΡΡΠΆΠ΅ΡΠ°. ΠΠΎΠΆΠ΅Ρ ΠΊΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΠΎΠΌΠΎΠ³ΠΈΡΠ΅ ΠΌΠ½Π΅?
Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° (Π±Π»Π΅ΡΡΡΡΠ°Ρ) Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° (Π±Π»Π΅ΡΡΡΡΠΈΠ΅ Π²ΠΈΠ΄ΠΆΠ΅ΡΡ) uiForModal <<- ΡΡΠ½ΠΊΡΠΈΡ (ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ) { ΠΏΠ΅ΡΠ°ΡΡ (ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ) Π½Ρ <- ΠΠ‘ (ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ) ΠΏΠ΅ΡΠ°ΡΡ (Π½Ρ (Β«Π³ΡΠ°ΡΠΈΠΊΒ»)) ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅Π³ΠΎΠ²( ΡΠ»ΡΠΈΠ΄Π ΠΎΡ( plotOutput(outputId = ns("ΡΡΠΆΠ΅Ρ")), ΡΠ»Π°ΠΉΠ΄Π΅ΡΠΠ²ΠΎΠ΄( inputId =ns("ΠΊΠ»Π°ΡΡΠ΅ΡΡ"), label = "ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠ²", ΠΌΠΈΠ½. = 2, ΠΌΠ°ΠΊΡ. = 6, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ = 3, ΡΠΈΡΠΈΠ½Π° = "100%" ) ) ) } serverForModal <<- ΡΡΠ½ΠΊΡΠΈΡ (Π²Π²ΠΎΠ΄, Π²ΡΠ²ΠΎΠ΄, ΡΠ΅Π°Π½Ρ) { output$plot <- renderPlot({ ΠΏΠ΅ΡΠ°ΡΡ (Π³ΠΎΠ»ΠΎΠ²Π° (ΡΠ°Π΄ΡΠΆΠ½Π°Ρ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ°)) ΡΡΠ°ΡΡΠΎΠΊ(Π§Π΅ΠΏΠ°Π».Π¨ΠΈΡΠΈΠ½Π° ~ Π§Π°ΡΠ΅Π»ΠΈΡΡΠΈΠΊ.ΠΠ»ΠΈΠ½Π°, data = ΠΈΡΠΈΡ, col = Π²ΠΈΠ΄Ρ, ΡΡ = 20, ΡΡΠΊΡ = 2) ΡΠΎΡΠΊΠΈ (kmeans (ΡΠ°Π΄ΡΠΆΠΊΠ° [ 1: 2], input $ ΠΊΠ»Π°ΡΡΠ΅ΡΡ) $ ΡΠ΅Π½ΡΡΡ, pch = 4, cex = 4, lwd = 4) }) } uiForButton <<- ΡΡΠ½ΠΊΡΠΈΡ (id) { Π½Ρ <- ΠΠ‘ (ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ) ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅Π³ΠΎΠ²( ΡΠ»ΡΠΈΠ΄Π ΠΎΡ( actionButton(ns("showPlot"), "showPlot") ) ) } serverForButton <<- ΡΡΠ½ΠΊΡΠΈΡ (Π²Π²ΠΎΠ΄, Π²ΡΠ²ΠΎΠ΄, ΡΠ΅Π°Π½Ρ, Π½Ρ) { Π½Π°Π±Π»ΡΠ΄Π°ΡΡEvent (Π²Ρ ΠΎΠ΄ $ showPlot, { show_alert( title = "ΠΠ΅ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ", ΡΠ΅ΠΊΡΡ = ΡΠ΅Π³ΠΈ $ div ( uiForModal(ns("test2")) ), HTML = ΠΠ‘Π’ΠΠΠ, ΡΠΈΡΠΈΠ½Π° = "80%" ) }) callModule(serverForModal, ns("test2")) } ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ <- ΡΠ»ΡΠΈΠ΄Π½Π°Ρ ΡΡΡΠ°Π½ΠΈΡΠ°( uiForButton("test1") ) ΡΠ΅ΡΠ²Π΅Ρ <- ΡΡΠ½ΠΊΡΠΈΡ (Π²Π²ΠΎΠ΄, Π²ΡΠ²ΠΎΠ΄) { callModule(serverForButton, "test1", NS("test1")) } runApp(shinyApp(ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΡΠ΅ΡΠ²Π΅Ρ))
TypeError ΠΠ±ΡΠ΅ΠΊΡ 'module' Π½Π΅ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π² Python
Π Python Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. ΠΡΠ΅ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΠΌΠΎΠ΄ΡΠ»ΡΡ ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°Ρ . ΠΡΠ°ΠΊ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, Π½Π°Ρ ΠΎΠ΄ΡΡΡΡΡΡ Π²Π½ΡΡΡΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ. ΠΠΎΠ΄ΡΠ»ΠΈ Π²ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Python Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΠΈΠΌΠΏΠΎΡΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ,
.
import math
ΠΡΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π±ΡΠ΄Π΅Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Π² Π²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠ°ΠΊ factorial(), floor() ΠΈ fabs() Π² ΡΡΠΎΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅. ΠΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ math(), ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π·Π°ΠΏΡΡΠ°Π΅ΡΡΡ. ΠΠ½ Π²ΡΠ΄Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ TypeError βmoduleβ object is not callable in Python.
ΠΠ΄Π΅ΡΡ ΠΌΡ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΠΌΡΡ Π½Π° ΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
Π Python Π²ΡΠ΅ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π²Π½ΡΡΡΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΡΠΎΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π² Π½Π°Ρ ΡΠ°ΠΉΠ» ΠΊΠΎΠ΄Π°.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅. ΠΠΎΠ΄ΡΠ»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π½Π°Π±ΠΎΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΊΠΎΠ΄Π° Π² ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠ°Π»ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ TypeError ΠΠ±ΡΠ΅ΠΊΡ Β«ΠΌΠΎΠ΄ΡΠ»ΡΒ» Π½Π΅ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π² Python
ΠΡΠΎ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ TypeError: ΠΎΠ±ΡΠ΅ΠΊΡ Β«ΠΌΠΎΠ΄ΡΠ»ΡΒ» Π½Π΅ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΡΠ°Π΅ΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΊΠ»Π°ΡΡΠ° ΠΈ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π² ΡΡΡΠΎΠΊΠ΅ ΠΈΠΌΠΏΠΎΡΡΠ° ΠΏΡΠΈ ΠΈΠΌΠΏΠΎΡΡΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΠΌΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ° ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅ ΠΈΠΌΡ.
ΠΡΠΈΡΠΈΠ½Π° ΡΡΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ
ΠΡΠΈΠ±ΠΊΠ° Β« TypeError: ΠΎΠ±ΡΠ΅ΠΊΡ Β«ΠΌΠΎΠ΄ΡΠ»ΡΒ» Π½Π΅ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Β» Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ python ΠΏΡΡΠ°Π΅ΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈ ΠΏΡΡΠ°Π΅ΡΡΡ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΈΠΌΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΡ .
ΠΡΠΈΠΌΠ΅Ρ:
# ΠΠΌΠΏΠΎΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΠ‘
ΠΈΠΌΠΏΠΎΡΡ ΠΠ‘
os()
ΠΡΠ²ΠΎΠ΄:
Traceback (ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π²ΡΠ·ΠΎΠ²):
Π€Π°ΠΉΠ» "call.py", ΡΡΡΠΎΠΊΠ° 4, Π²
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ()
TypeError: ΠΎΠ±ΡΠ΅ΠΊΡ 'module' Π½Π΅ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π»ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ Β«osΒ» , Π° Π·Π°ΡΠ΅ΠΌ ΠΏΡΡΠ°Π΅ΠΌΡΡ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠΎΡ ΠΆΠ΅ Β«osΒ» ΠΈΠΌΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΡ.
Π ΠΊΠ°ΠΊ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ Π ΠΌΠΎΠ΄ΡΠ»Π΅ Β«osΒ» Π½Π΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ Β«osΒ», ΠΏΠΎΡΡΠΎΠΌΡ Β« TypeError: ΠΎΠ±ΡΠ΅ΠΊΡ 'module' is not callable Β» Β
ΠΡΠΈΠΌΠ΅Ρ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ ΠΈ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ
Π§ΡΠΎΠ±Ρ ΠΎΠ±ΡΡΡΠ½ΠΈΡΡ ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ, ΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ.
ΠΠΌΡ ΡΠ°ΠΉΠ»Π° : mymodule.py
ΠΠΎΠ΄:
ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΅Π³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ():
myval='STechies'
print(myval)
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΊΠΎΠ΄Π΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ Β«mymodule.pyΒ» ΠΈ Π² ΡΡΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ Β«mymoduleΒ»
ΠΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΠΈΠΌΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈ ΠΈΠΌΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΊΠΎΠ΄Π΅ ΡΠ°ΠΊΠΎΠ΅ ΠΆΠ΅.
ΠΠΌΡ ΡΠ°ΠΉΠ»Π°: mycode.py
ΠΠΎΠ΄:
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ
print(mymodule())
ΠΡΠ²ΠΎΠ΄:
Traceback (ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π²ΡΠ·ΠΎΠ²): Π€Π°ΠΉΠ» "mycode.