Beer::CodeπΊ
ΠΡΠΊΡΡΡΡ Π² Telegram
Π’ΡΡ ΠΏΡΠ±Π»ΡΠΊΡΡΡΡΡΡ ΠΊΠΎΡΠΎΡΠΊΡ Π·Π°ΠΌΡΡΠΊΠΈ ΠΏΡΠΎ PHP, Linux, Unit Testing, DB, OOP ΡΠΎΡΠΎ, Π²ΠΈΡΡΠ³ΠΈ Π·Ρ ΡΡΠ°ΡΠ΅ΠΉ, ΠΊΠ½ΠΈΠ³, Π²ΡΠ΄Π΅ΠΎ, ΠΊΡΡΡΡΠ² ΡΠ° ΡΠ½ΡΠΈΡ ΠΌΠ°ΡΠ΅ΡΡΠ°Π»ΡΠ². Π’Π΅ΠΏΠ΅Ρ ΡΠΎΠ±Ρ Π±ΡΠ»ΡΡΠ΅ Π½Π΅ ΠΏΠΎΡΡΡΠ±Π½ΠΎ ΠΏΠ΅ΡΠ΅Π³ΠΎΡΡΠ°ΡΠΈ ΡΠΎΠ½Π½ΠΈ ΡΠ½ΡΠΎΡΠΌΠ°ΡΡΡ ;) @genkovich β Π½Π°ΠΏΠΈΡΠ°ΡΠΈ Π°Π²ΡΠΎΡΡ ΠΊΠ°Π½Π°Π»Ρ.
ΠΠΎΠ»ΡΡΠ΅Π‘ΡΡΠ°Π½Π° Π½Π΅ ΡΠΊΠ°Π·Π°Π½Π°ΠΠ°ΡΠ΅Π³ΠΎΡΠΈΡ Π½Π΅ ΡΠΊΠ°Π·Π°Π½Π°
3 747
ΠΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΈ
-224 ΡΠ°ΡΠ°
+97 Π΄Π½Π΅ΠΉ
+6630 Π΄Π½Π΅ΠΉ
ΠΡΡ
ΠΈΠ² ΠΏΠΎΡΡΠΎΠ²
3 746
ΠΠΈΠ½Π°ΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ ΠΈ "Π-Π±ΠΎΠ»ΡΡΠΎΠ΅"
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ Π²ΡΡΡΠ΅ΡΠ°Ρ Π²ΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π»ΡΠ΄Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ Ρ ΡΠ΅ΠΌΠΎΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ². ΠΡΠ³ΡΠΌΠ΅Π½ΡΠΈΡΡΡΡ ΡΡΠΎ ΡΠ΅ΠΌ, ΡΡΠΎ "Π΄Π° Π·Π°ΡΠ΅ΠΌ ΠΌΠ½Π΅ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ, Π΅ΡΠ»ΠΈ Ρ ΠΏΠΈΠ»Ρ ΠΊΡΠ°Π΄ΠΈΠΊΠΈ" ΠΈ ΠΎΠ½ΠΈ ΠΏΡΠ°Π²Ρ. Π Π°Π·Π½ΠΈΡΠ° ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ Ρ ΡΠ°ΠΊΠΈΠΌ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΎΠΌ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ ΡΠ΅Π΄Π΅ΡΡ ΠΈ Π²Π΅Π»ΠΈΠΊΠ° Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ ΡΠ°ΠΊ ΠΈ ΠΏΠΈΠ»ΠΈΡΡ ΠΊΡΠ°Π΄ΠΈΠΊΠΈ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° ΡΠ²ΠΎΠ΅ΠΉ ΠΊΠ°ΡΡΠ΅ΡΡ. ΠΠΈΡΠ½ΠΎ Ρ ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅ ΡΡΠΎΠΈΡ ΡΡΠ°Π·Ρ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π³Π»ΡΠ±ΠΎΠΊΠΎ ΠΊΠΎΠΏΠ°ΡΡ Π² ΡΡΡ ΡΠ΅ΠΌΡ, Π½ΠΎ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ Π·Π½Π°ΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ. ΠΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΏΠΎΠ½ΡΡΠΈΡ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ
ΠΊΠ½ΠΈΠ³Π°Ρ
, ΡΡΠ°ΡΡΡΡ
ΠΈ Π²ΠΈΠ΄Π΅ΠΎ. Π ΡΡΠΎΠ±Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ Π΄ΠΎ Π²Π°Ρ Ρ
ΠΎΡΠ΅Ρ Π΄ΠΎΠ½Π΅ΡΡΠΈ Π°Π²ΡΠΎΡ β Π½ΡΠΆΠ½ΠΎ ΡΡΡΡ-ΡΡΡΡ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ.
ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΡΡΠΎ Π²Π°Ρ Π΄ΡΡΠ³ Π·Π°Π³Π°Π΄Π°Π» ΡΠΈΡΠ»ΠΎ, ΠΎΡ 1 Π΄ΠΎ 100, Π° Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π΅Π³ΠΎ ΠΎΡΠ³Π°Π΄Π°ΡΡ. ΠΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠΎΠΏΡΡΠΊΠ΅ Π΄ΡΡΠ³ Π±ΡΠ΄Π΅Ρ Π΄Π°Π²Π°ΡΡ Π²Π°ΠΌ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΡΡΡ
ΠΎΡΠ²Π΅ΡΠΎΠ² "ΠΠ°Π»ΠΎ" , "ΠΠ½ΠΎΠ³ΠΎ", "Π ΡΠΎΡΠΊΡ!". ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°ΡΡ Π²ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΏΠΎΠ΄ΡΡΠ΄ (1, 2, 3, 4... ΡΠΎ Π΅ΡΡΡ ΠΏΡΡΠΌΡΠΌ ΠΏΠΎΠΈΡΠΊΠΎΠΌ), ΡΠΎ Π²Ρ ΡΠΈΡΠΊΡΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ 100 ΠΏΠΎΠΏΡΡΠΎΠΊ, ΠΏΡΠΈ ΡΠ°ΠΌΠΎΠΌ ΠΏΠ»ΠΎΡ
ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅.
π ΠΠΎ ΡΡΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΡΡΠ°Π·Ρ ΡΠ΄Π°ΡΠΈΡΠ΅ Π² ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Ρ ΠΈ Π½Π°Π·ΠΎΠ²Π΅ΡΠ΅ ΡΠΈΡΠ»ΠΎ 50? "ΠΠ°Π»ΠΎ", ΠΈ Π²Ρ ΡΡΠ°Π·Ρ ΠΎΡΡΠ΅ΠΊΠ»ΠΈ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ². ΠΠ°ΡΠ΅ΠΌ "75" β "ΠΠ½ΠΎΠ³ΠΎ", ΠΈ Π΅ΡΠ΅ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΡΡΠ»Π°. ΠΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊ ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ.
βοΈΠΠ°ΠΆΠ½ΠΎ, ΡΡΠΎ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΡΠΏΠΈΡΠΎΠΊ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½.
π ΠΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ "Π-Π±ΠΎΠ»ΡΡΠΎΠ΅"
πββοΈ ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ Π·Π°Π±ΡΠ»ΠΈ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π»ΠΎΠ³Π°ΡΠΈΡΠΌ, Π½ΠΎ ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π²ΠΎΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΡΡΠ΅ΠΏΠ΅Π½Ρ. Π’Π°ΠΊ Π²ΠΎΡ, Π·Π°ΠΏΠΈΡΡ
log(2) 8 ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, Π² ΠΊΠ°ΠΊΡΡ ΡΡΠ΅ΠΏΠ΅Π½Ρ Π½ΡΠΆΠ½ΠΎ Π²ΠΎΠ·Π²Π΅ΡΡΠΈ 2, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ 8, ΠΈΡΠ°ΠΊ log(2) 8 = 3.
"Π-Π±ΠΎΠ»ΡΡΠΎΠ΅" ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±ΡΡΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌ. ΠΡΠΎΡΡΠΎΠΉ ΠΏΠΎΠΈΡΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ. ΠΠ»Ρ ΡΠΏΠΈΡΠΊΠ° ΠΈΠ· 4 ΠΌΠΈΠ»Π»ΠΈΠ°ΡΠ΄ΠΎΠ² (ΠΈΠ»ΠΈ Π»ΡΠ±ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅ n) ΡΠΈΡΠ΅Π» ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄ΠΎ 4 ΠΌΠΈΠ»Π»ΠΈΠ°ΡΒΠ΄ΠΎΠ² ΠΏΠΎΠΏΡΡΠΎΠΊ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠΏΡΡΠΎΠΊ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ ΡΠΏΠΈΡΠΊΠ°. Π’Π°ΠΊΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π»ΠΈΠ½Π΅ΠΉΠ½ΡΠΌ ΠΈ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅ΡΡΡ O(n).
Π‘ Π±ΠΈΠ½Π°ΡΠ½ΡΠΌ ΠΏΠΎΠΈΡΠΊΠΎΠΌ Π΄Π΅Π»ΠΎ ΠΎΠ±ΡΡΠΎΠΈΡ ΠΈΠ½Π°ΡΠ΅. ΠΠ»Ρ ΡΠΏΠΈΡΠΊΠ° ΠΈΠ· 4 ΠΌΠΈΠ»Π»ΠΈΠ°ΡΠ΄ΠΎΠ² ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ Π±ΠΎΠ»Π΅Π΅ 32 ΠΏΠΎΠΏΡΡΠΎΠΊ. ΠΠΏΠ΅ΡΠ°ΡΠ»ΡΠ΅Ρ, Π΄Π°? ΠΠΈΠ½Π°ΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π·Π° Π»ΠΎΠ³Π°ΡΠΈΡΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΈ Π΅Π³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ O(log n).
β ΠΡΠ»ΠΈ ΡΡΠΎ Π²ΡΠ΅ΠΌΡ, ΡΠΎ Π³Π΄Π΅ ΠΆΠ΅ ΡΠ΅ΠΊΡΠ½Π΄Ρ?
Π ΠΈΡ
Π·Π΄Π΅ΡΡ Π½Π΅Ρ. "Π-Π±ΠΎΠ»ΡΡΠΎΠ΅" Π½Π΅ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ Π²ΡΠ΅ΠΌΡ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°Ρ
, Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΠ°Π²Π½ΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΒΡΡΠ²ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ. ΠΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±ΡΡΡΡΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π΅Ρ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°. Π Π²ΡΠ΅ΠΌΡ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°Ρ
ΡΠΆΠ΅ Π±ΡΠ΄Π΅Ρ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΈΡΡ
ΠΎΠ΄Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
, Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΠΌΠΎΡΠ½ΠΎΡΡΠ΅ΠΉ ΠΈ Ρ.Π΄.
βοΈ "Π-Π±ΠΎΠ»ΡΡΠΎΠ΅" ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π² Ρ
ΡΠ΄ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅.
Π’ΠΎ Π΅ΡΡΡ Π΅ΡΠ»ΠΈ Π²Π°Ρ Π΄ΡΡΠ³, Π·Π°Π³Π°Π΄Π°Π» ΡΠΈΡΠ»ΠΎ "1", ΡΠΎ ΠΏΡΠΈ ΠΏΡΡΠΌΠΎΠΌ ΠΏΠΎΠΈΡΠΊΠ΅ Π²Ρ ΡΠ³Π°Π΄Π°Π΅ΡΠ΅ Π΅Π³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ ΡΡΠΎΠΈΡ Π½Π° ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ O(1). ΠΠΎ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΠΎΠΈΡΠΊ Π²ΡΡ ΡΠ°Π²Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π·Π° Π²ΡΠ΅ΠΌΡ O(n), ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠΎ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π² Ρ
ΡΠ΄ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π±ΡΠ°ΡΡ Π²ΡΠ΅ ΡΠΈΡΠ»Π°.
π ΠΠ°Π΄Π΅ΡΡΡ ΡΡΠ°Π»ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ½ΡΡΠ½Π΅Π΅ ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Π² ΡΠ°Π·Π½ΡΡ
ΠΊΠ½ΠΈΠ³Π°Ρ
ΠΈΠ»ΠΈ ΡΡΠ°ΡΡΡΡ
Π²Ρ Π²ΡΡΡΠ΅ΡΠΈΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ ΡΠΈΠΏΠ° O(n), O(n!), O(n log n) Π²Ρ Π½Π΅ Π±ΡΠ΄Π΅ΡΠ΅ Π²ΠΏΠ°Π΄Π°ΡΡ Π² ΡΡΡΠΏΠΎΡ, Π° Π±ΡΠ΄Π΅ΡΠ΅ ΠΎΡΠΎΠ·Π½Π°Π½Π½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ Π°Π²ΡΠΎΡ Ρ
ΠΎΡΠ΅Ρ Π΄ΠΎ Π²Π°Ρ Π΄ΠΎΠ½Π΅ΡΡΠΈ.
#junior #algorithm #source3 746
Validation (part 1). ΠΠ°Π»ΠΈΠ΄Π°ΡΠΈΡ Π²Π½ΡΡΡΠΈ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ»ΠΎΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Π£ΠΆΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· ΠΌΠ΅Π½Ρ ΠΏΡΠΎΡΠΈΠ»ΠΈ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π·Π°ΠΌΠ΅ΡΠΊΡ ΠΏΠΎ ΡΡΠΎΠΉ ΡΠ΅ΠΌΠ΅ ΠΈ Π²ΠΎΡ, ΠΏΠΎΡΠ»Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΠΏΠΎΡΡΠΎΠ², Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ Ρ Π±ΡΠ΄Ρ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π°ΠΊΠΎΠ½Π΅Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ. Π§ΡΡΡ ΠΏΠΎΠ·ΠΆΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΡΡ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ ΠΈ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΏΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ
, Π½ΠΎ Π½Π°ΡΠ½Π΅ΠΌ ΠΌΡ ΡΡΠ°Π·Ρ Ρ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ»ΠΎΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠΎ Π΅ΡΡΡ Ρ ΡΠΎΠΉ ΡΠ°ΠΌΠΎΠΉ Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠΈ.
π ΠΠ°Π»ΠΈΠ΄Π°ΡΠΈΡ ΡΡΡΠ½ΠΎΡΡΠΈ (Entity).
Π Π°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠ΅ Π² Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ Π²ΠΎ Π²Π½ΡΡΡΡ
Entity. Π ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ
ΠΏΠΎΡΡΠΎΠ², Ρ ΡΠΆΠ΅ ΠΏΠΈΡΠ°Π», ΡΡΠΎ ΡΡΡΠ½ΠΎΡΡΡ ΡΠ°ΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°ΡΠΈΡΠ°ΡΡ ΡΠ²ΠΎΠΈ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΡ, Ρ
ΡΠ°Π½ΠΈΡΡ Π² ΡΠ΅Π±Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π²Π°Π»ΠΈΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΠΏΡΠΈ ΡΡΠΎΠΌ Π²Π°Π»ΠΈΠ΄ΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ.
β ΠΠ΅ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π΄Π»Ρ Entity ΡΠ΅ΡΠ²ΠΈΡΡ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΈ. ΠΠ°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π΄Π΅Π»Π°ΡΡ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΠ΅ ΠΈ Π½Π΅Π½ΡΠΆΠ½ΡΠ΅ Π³Π΅ΡΡΠ΅ΡΡ Π²Π½ΡΡΡΠΈ Entity, ΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° ΡΠ΅ΠΌ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠ΅ΡΠ²ΠΈΡ Π² ΡΠ»ΡΡΠ°Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°ΠΌΠΎΠΉ ΡΡΡΠ½ΠΎΡΡΠΈ ΠΈ Π½Π΅ Π·Π°Π±ΡΠ²Π°ΡΡ Π΅Π³ΠΎ Π²ΡΠ·Π²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΏΡΠΈ Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ.
π ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π²ΡΠ΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ Π΄Π»Ρ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΠ½ΠΎΡΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΈ Π²Π°Π»ΠΈΠ΄ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ
ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Ρ. ΠΡΠ΅ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π·Π°Π΄Π°Π½Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈ/ΠΈΠ»ΠΈ Π±ΡΡΡ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½Π½ΡΠΌΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ, Π² ΠΊΠΎΡΠΎΡΡΡ
ΡΠ°ΠΊΠΆΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π΄ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ. Π ΡΠ»ΡΡΠ°Π΅ Π΅ΡΠ»ΠΈ Π½Π°Ρ ΡΡΠΎ-ΡΠΎ Π½Π΅ ΡΡΡΡΠ°ΠΈΠ²Π°Π΅Ρ β ΠΊΠΈΠ΄Π°Π΅ΠΌ Exception. ΠΡΠΈΠΌΠ΅Ρ
β ΠΠΎ Π²Π΅Π΄Ρ ΠΌΡ ΠΆΠ΅ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ?
ΠΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π½Π΅ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. Exceptions, ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π²ΠΈΠ΄Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ. ΠΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π²ΡΠ±ΡΠΎΡΠ΅Π½Π½ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Ρ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ Π²ΡΠ²Π΅ΡΡΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΡΠΎ-ΡΠΎ Π½Π° ΡΠΊΡΠ°Π½. ΠΠΎ ΠΎΠ± ΡΡΠΎΠΌ ΡΡΡΡ ΠΏΠΎΠ·ΠΆΠ΅.
π ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Value Objects Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ.
ΠΠ°Π½Π½ΡΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈ Π΄Π΅Π»Π΅Π³ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ, ΠΈ ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ
Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ Π² Π΄ΡΡΠ³ΠΈΡ
ΡΠ°ΡΡΡΡ
Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
π ΠΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ Π²ΡΠ½Π΅ΡΡΠΈ AccountNumber, ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΠ² Π² Π½Π΅Π³ΠΎ Π²ΡΡ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ, ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΠΈΡΡ Value Object Money, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π²Π·ΡΡΡ Π½Π° ΡΠ΅Π±Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΏΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ΅ΡΠ°. Π’ΠΎΠ³Π΄Π° Π½Π°ΡΠ° Entity Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΠΈΠ΄. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΡΡΠ½ΠΎΡΡΠΈ ΠΌΡ ΡΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Ρ Π²Π°Π»ΠΈΠ΄Π½ΡΠΌΠΈ Value Objects, ΡΠΎ Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΡΠΎ-ΡΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²Π½ΡΡΡΠΈ ΡΡΡΠ½ΠΎΡΡΠΈ, ΠΌΡ ΠΈ ΡΠ°ΠΊ Π²ΡΡ Π·Π°ΡΠ°ΠΉΠΏΡ
ΠΈΠ½ΡΠΈΠ»ΠΈ.
π Π’Π΅ΠΌΠ° ΠΎΡΠ΅Π½Ρ ΠΎΠ±ΡΠΈΡΠ½Π°Ρ, ΡΠ°ΠΊ ΡΡΠΎ ΡΡΠ°Π²Ρ πΊ Π΅ΡΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΡΠΎ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ
Π΄Π°Π½Π½ΡΡ
, Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΠΠ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎ Incomplete, Invalid ΠΈ Inconsistent ΠΎΠ±ΡΠ΅ΠΊΡΡ.
#php #oop #junior #source3 746
Data Transfer Object (DTO) ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ Π³ΠΎΡΠΎΠ²ΠΈΡΡ?
Π ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ
ΠΏΠΎΡΡΠ°Ρ
Ρ ΡΠΆΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π» ΡΡΠΎ ΡΡΠΎ, Π½ΠΎ Ρ
ΠΎΡΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡΡ Π½Π° Π½ΡΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅, ΡΡΠΎΠ±Ρ Π·Π°ΠΊΡΡΡΡ ΡΠ°ΡΡΠΎ Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ.
β ΠΠ°ΡΠ΅ΠΌ ΠΎΠ½ Π½ΡΠΆΠ΅Π½?
ΠΠ»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π²ΡΡ ΡΠΎΡ-ΠΆΠ΅ ΠΊΠ΅ΠΉΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ
ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ»ΠΎΡΠΌΠΈ Π²Π½ΡΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΠΈΠ΄Π΅Ρ, ΡΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡΠ΄Π΅Π»ΠΈΡΡ Π»ΠΎΠ³ΠΈΠΊΡ Π½Π°ΡΠ΅Π³ΠΎ Π±ΠΈΠ·Π½Π΅ΡΠ° ΠΎΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° ΠΈ Π΄Π΅Π»ΠΎ ΡΡΡ Π²ΠΎΠ²ΡΠ΅ Π½Π΅ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΌΡ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ Π·Π°Ρ
ΠΎΡΠΈΠΌ ΠΏΠ΅ΡΠ΅Π΅Ρ
Π°ΡΡ Π½Π° Π½ΠΎΠ²ΡΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ (Ρ
ΠΎΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ°ΡΡ ΡΡΠΎΠ³ΠΎ Π½Π΅ ΡΡΠΎΠΈΡ), Π° Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΎΡΠΊΡΠ΄Π° ΠΎΠ½ΠΎ Π΄Π΅ΡΠ³Π°Π΅ΡΡΡ.
ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΠΈ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²Π½ΡΡΡΠΈ ΠΊΠΎΡΠΎΡΡΡ
ΠΌΡ ΠΏΡΡΠ°Π΅ΠΌΡΡ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ΅ΡΠ²ΠΈΡ (ΠΈΠ»ΠΈ command handler) Π΄Π»Ρ ΡΠΌΠ΅Π½Ρ Π°Π΄ΡΠ΅ΡΠ° Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ. Π
Request ΠΈ Input ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΡΡΡΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°, Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ²Π»ΠΈΡΡΡ, ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. ΠΠ»ΡΡ ΠΊΠΎ Π²ΡΠ΅ΠΌΡ ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π½Π°ΡΡ Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠΉ ΠΎΡ ΡΠΎΠΉ ΡΠ°ΠΌΠΎΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ.
ΠΠ°ΠΊ ΡΠ°Π· Π·Π΄Π΅ΡΡ Π½Π°ΠΌ Π½Π° ΠΏΠΎΠΌΠΎΡΡ ΠΈ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡ DTO, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΎΡΠ΄Π΅Π»ΠΈΡΡ ΡΠ»ΠΎΠΈ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π°.
β ΠΠΎΠ»ΠΆΠ΅Π½ Π»ΠΈ DTO ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ?
π ΠΠ΅Ρ.
ΠΠ½ΡΡΡΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ, ΠΊΡΠΎΠΌΠ΅ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
. ΠΡΡΠ°Π²ΡΡΠ΅ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΡΠ°ΠΏ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΈ Π²Π°ΡΠ΅ΠΌΡ ΡΡΠΎΠ½ΡΠ΅Π½Π΄Ρ (ΠΈΠ»ΠΈ Π²Π°Π»ΠΈΠ΄Π°ΡΠΎΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°), Π° Π²ΡΠΎΡΠΎΠΉ ΡΠΆΠ΅ ΡΠ°ΠΌΠΎΠΌΡ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠΌΡ ΡΠ»ΠΎΡ (Value Object, Entity ΠΈ Ρ.Π΄.). Π’ΠΎ Π΅ΡΡΡ DTO Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ±ΡΠ°ΡΡΠ²Π°ΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ
ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ. ΠΡΡ ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ, ΡΡΠΎ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌ ΡΠΈΠΏΠ°ΠΌ, ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ ΠΏΠΎΠ»ΡΠΌ ΠΈΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ null (Π΅ΡΠ»ΠΈ Π² Π²Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ). ΠΡΠΎ ΠΎΡΡΠ°Π²ΠΈΡ Π·Π½Π°Π½ΠΈΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ Π΄ΠΎΠΌΠ΅Π½Π° Π²Π½ΡΡΡΠΈ ΡΠ΄ΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π° Π½Π΅ Π² ΠΊΠΎΠ΄Π΅ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ.
βοΈ ΠΠ°Π·ΡΠ²Π°ΠΉΡΠ΅ Π²Π°ΡΠΈ DTO ΠΏΠΎ ΠΈΡ
Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΡΠΌ (Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠΌ)
π ΠΡΠ»ΠΈ Π΄Π°Π½Π½ΡΠ΅ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π°Π΄ΡΠ΅ΡΠ° Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ Π·Π°ΠΊΠ°Π·Π° (ΠΊΠ°ΠΊ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ
Π²ΡΡΠ΅), Π½Π°Π·ΠΎΠ²ΠΈΡΠ΅ Π΅Π³ΠΎ ChangeDeliveryAddress (Π° Π½Π΅ DeliveryAddressDTO). ΠΠΎ ΠΏΠ΅ΡΠ²ΡΡ
ΡΡΠΎ ΡΠΌΠ΅Π½ΡΡΠΈΡ ΠΏΡΡΠ°Π½ΠΈΡΡ, Ρ.ΠΊ. ΡΠ°Π·Π½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π±ΡΠ΄ΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·Π½ΡΠΉ Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ
. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ DTO Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π°Π΄ΡΠ΅ΡΠ° Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ID, Π° Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΠ½ ΡΠΆΠ΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»Π΅Π½.
#junior #php #dto #source3 746
The Everybody Poops Rule (ΠΡΠ΅ ΠΊΠ°ΠΊΠ°ΡΡ)
π ΠΠ°ΠΊ ΠΌΠ½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ ΠΎΡΠ»ΠΈΡΠ½Π°Ρ Π°Π»Π»Π΅Π³ΠΎΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠ° ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠ΅ ΠΌΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΠΌΡΡ Ρ ΡΠΈΡΡΠ°ΡΠΈΡΠΌΠΈ, ΠΊΠΎΠ³Π΄Π° Π² ΠΊΠΎΠ΄Π΅ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡΡΡ ΠΈΠ΄ΡΠΈ Π½Π° ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΡΡ. ΠΠ½ΠΎΠ³Π΄Π° ΠΈΠ·-Π·Π° Π½Π΅Ρ
Π²Π°ΡΠΊΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΈΠ½ΠΎΠ³Π΄Π° Π΄Π»Ρ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΡ ΠΎΠ²Π΅ΡΠΈΠ½ΠΆΠΈΠ½ΠΈΡΠΈΠ½Π³Π°, ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈΠ·-Π·Π° Π½Π΅ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²Π° ΡΠΈΡΡΠ΅ΠΌΡ, Π½Π΅Ρ
Π²Π°ΡΠΊΠΈ Π·Π½Π°Π½ΠΈΠΉ ΠΈ Ρ.Π΄. Π ΠΌΡ ΡΠΎΠ·Π½Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌ Π² ΠΊΠΎΠ΄Π΅ "Π΄Π΅ΡΡΠΌΠΎ", Π²Π΅Π΄Ρ Π½Π΅ ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΠ°ΡΡΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎΠΉ.
π ΠΡΠ΅ ΠΊΠ°ΠΊΠ°ΡΡ. ΠΠΎ Π΄ΠΎΠΌΠ° ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ Π½Π΅ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠΌΠ½Π°ΡΠ΅. Π£ Π²Π°Ρ Π΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½Π°Ρ ΠΊΠΎΠΌΠ½Π°ΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ ΠΊΠ°ΠΊΠ°Π΅ΡΠ΅, ΡΡΠ°Π²ΠΈΡΠ΅ Π΄Π²Π΅ΡΡ, ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΌ ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΠ΅.
ΠΠ°, Π·Π²ΡΡΠΈΡ ΡΡΡΠ°Π½Π½ΠΎ, Π½ΠΎ Π·Π°ΡΠΎ Ρ
ΠΎΡΠΎΡΠΎ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΡΡΡ π
βοΈ ΠΠ°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ ΡΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ. ΠΠ°Π½Π½ΠΎΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΠΊΠ°ΠΊ ΡΠ°Π· ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Ρ ΡΡΠΈΠΌ ΠΆΠΈΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠΎΠΊΡΡΡΠΈΡ ΠΈ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΡΡΠΈΠΈ. ΠΡΠ»ΠΈ ΠΊΠΎΠ΄ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½ β Π½Π΅ Π²Π°ΠΆΠ½ΠΎ, ΡΡΠΎ ΡΠΊΡΡΠ²Π°Π΅ΡΡΡ Π·Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ. ΠΠ»Π°Π²Π½ΠΎΠ΅, ΡΡΠΎ ΠΌΡ Π³Π°Π΄ΠΈΠΌ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ
ΡΠ°ΡΡΡΡ
ΠΈ "Π΄Π΅ΡΠΆΠΈΠΌ Π΄Π²Π΅ΡΡ Π·Π°ΠΊΡΡΡΠΎΠΉ".
π ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ
ΠΌΠ΅ΡΡ ΡΠΎΠΆΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΡ. Π’ΠΎ Π΅ΡΡΡ Π½Π΅Π»ΡΠ·Ρ ΡΠΎΠ²ΡΠ΅ΠΌ Π·Π°Π±ΠΈΡΡ ΠΈ Π²ΡΡΠ»ΠΈΡΡ ΡΡΠ΄Π° ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ
God Object Ρ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ Π² 1000 ΡΡΡΠΎΠΊ, Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΊ ΠΠ Π² foreach. ΠΠ΄Π΅ΡΡ Π²Π°ΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π±Π°Π»Π°Π½Ρ. ΠΡΠΎ ΡΠΎΠΆΠ΅ Π½Π΅ΠΏΡΠΎΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ°. ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΠΏΠΎΠ»ΠΎΠΆΠΈΠ² ΠΊΠΎΠ΄ "Π·Π° Π΄Π²Π΅ΡΡ" ΠΎΠ½ Π½Π΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π»ΡΡΡΠ΅, Π° Π·Π½Π°ΡΠΈΡ ΡΡΠΈΡΡΠ²Π°ΠΉΡΠ΅ ΡΠΈΡΠΊΠΈ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²Π°ΠΌ ΠΏΡΠΈΠ΄ΡΡΡΡ Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°ΡΡ.
βοΈ Π’Π°ΠΊΠΆΠ΅ ΡΠΎ, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΡ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ β Π½Π΅ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ Π²ΡΠ΅Π³Π΄Π° ΠΈ Π²Π΅Π·Π΄Π΅. ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π·Π°Π΄Π°ΠΉΡΠ΅ ΡΠ΅Π±Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΠΎΠΏΡΠΎΡΠΎΠ²:
β’ ΠΠ°ΠΊ ΡΠ°ΡΡΠΎ ΠΊΠΎΠ΄ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ?
β’ ΠΠ°ΠΊ Π΄ΠΎΠ»Π³ΠΎ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΡΡΠΎΠ³Π°ΡΡ?
β’ Π―Π²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ Π΄ΠΎΠΌΠ΅Π½ΠΎΠΌ Π² Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ? (Π·Π΄Π΅ΡΡ Π»ΡΡΡΠ΅ ΡΡΠΎΠ³ΠΎ Π½Π΅ Π΄Π΅Π»Π°ΡΡ)
π ΠΡΠ΅ ΠΊΡΡΡΠ΅ β ΡΡΠ°Π·Ρ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΉ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³. Π’ΠΎ, ΡΡΠΎ ΡΠ΅Π³ΠΎΠ΄Π½Ρ Π²Ρ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π»ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ Π±ΠΈΠ·Π½Π΅ΡΡ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ ΠΈΠ»ΠΈ Π³Π΄Π΅-ΡΠΎ Π°ΡΠΊΠ½ΡΡΡΡΡ Π² ΡΠ°ΠΌΡΠΉ Π½Π΅ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ. ΠΡΡΡΠΎ Π±ΡΡΡ ΠΊ ΡΡΠΎΠΌΡ Π³ΠΎΡΠΎΠ²ΡΠΌ. ΠΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΡΠΎ ΠΌΠ΅ΡΡΠΎ Π·Π°Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎΠ±Ρ ΡΠΎΡΠ½ΠΎ Π·Π½Π°ΡΡ ΠΎ Π²ΡΠ΅Ρ
ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΡΡ
.
#junior #oop #source3 746
ΠΠ΅ PHP Π΅Π΄ΠΈΠ½ΡΠΌ ;)
π’ Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ Π½Π°Ρ Π»ΡΠ±ΠΈΠΌΡΠΉ PHP ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ Π½Π΅ Π΄Π»Ρ Π²ΡΠ΅Ρ
Π·Π°Π΄Π°Ρ. ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ°ΠΊΠΈΡ
ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°Π±ΠΎΡΠ° Ρ Big Data. ΠΠΎΠΉ ΠΊΠΎΠ»Π»Π΅Π³Π° ΠΈΠ· Netpeak, ΠΠ»Π΅ΠΊΡΠ΅ΠΉ Π‘Π΅Π»Π΅Π·Π½ΡΠ², ΠΏΠΎΡΠ²ΡΡΠΈΠ» ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ
ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΠ΅Π»ΡΠΉ ΠΊΠ°Π½Π°Π» R4marketing.
π ΠΠ°Π½Π°Π» ΠΏΠΎΡΠ²ΡΡΡΠ½ ΡΠ·ΡΠΊΡ R. Π‘ΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ·ΡΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ Π΄Π»Ρ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ
, Π°Π½Π°Π»ΠΈΡΠΈΠΊΠΈ ΠΈ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ
. ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Π³Π»Π°Π²Π½ΡΠΌ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΎΠΌ Python Π² ΠΎΠ±Π»Π°ΡΡΠΈ Data Science.
Π ΠΊΠ°Π½Π°Π»Π΅ ΠΏΡΠ±Π»ΠΈΠΊΡΡΡΡΡ:
- Π‘ΡΠ°ΡΡΠΈ
- ΠΠΈΠ΄Π΅ΠΎ ΡΡΠΎΠΊΠΈ
- ΠΠ΅Π±ΠΈΠ½Π°ΡΡ ΠΈ Π΄ΠΎΠΊΠ»Π°Π΄Ρ Ρ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΉ
- ΠΠ°ΠΌΠ΅ΡΠΊΠΈ ΠΏΠΎ R
- ΠΠ½ΠΈΠ³ΠΈ
- ΠΠ΅ΡΠΏΠ»Π°ΡΠ½ΡΠ΅ ΠΎΠ½Π»Π°ΠΉΠ½ ΠΊΡΡΡΡ
- ΠΠΎΠ²ΠΎΡΡΠΈ ΠΈ ΡΠ΅Π»ΠΈΠ·Ρ ΠΈΠ· ΠΌΠΈΡΠ° R
π Π ΠΎΠ±ΡΠ΅ΠΌ, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π° ΠΎΠ±Π»Π°ΡΡΡ Data Science, ΡΠΎ Π²Ρ ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎ Π½Π°ΠΉΠ΄ΡΡΠ΅ Π² ΠΊΠ°Π½Π°Π»Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.
3 746
Regular Expression
ΠΡΠΈ Π²ΠΈΠ΄Π΅ ΡΠ»ΠΎΠ²Π° "RegExp" Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π΄Π΅ΡΠ³Π°ΡΡΡΡ Π³Π»Π°Π·. ΠΠ΅Π΄Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π½Π° Ρ ΠΏΠΎΠΌΠ½ΠΈΡ Π΄Π΅ΡΡΡΠΊΠΈ ΠΏΠΎΡΡΠ°ΡΠ΅Π½Π½ΡΡ
ΡΠ°ΡΠΎΠ², ΡΠ°Π΄ΠΈ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΊΡΡΡΡ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΊΠ΅ΠΉΡΡ ΠΈ ΡΠ°ΠΊΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ΅Π³ΡΠ»ΡΡΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΠ΄Π΅ΡΡ Ρ ΠΎΠΏΠΈΡΡ ΠΏΠ°ΡΡ ΡΠΎΠ²Π΅ΡΠΎΠ² ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΏΡΠΎΡΡΠΈΡΡ ΡΠ΅Π±Π΅ ΠΆΠΈΠ·Π½Ρ ΠΏΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ RegExp.
π ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ (delimiter)
Π Π΅ΡΡ ΠΈΠ΄Π΅Ρ ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π°Ρ
, Π² ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΠΎΠ±ΠΎΡΠ°ΡΠΈΠ²Π°Π΅ΠΌ Π½Π°ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ slash "
/"
/(foo|bar)/i
βοΈΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π΄Π»Ρ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ Π»ΡΠ±ΠΎΠΉ ΡΠΈΠΌΠ²ΠΎΠ», Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ~,!, @, #, $. Π Π°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»ΡΠΌΠΈ ΠΠ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π±ΡΠΊΠ²Π΅Π½Π½ΠΎ-ΡΠΈΡΡΠΎΠ²ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ (AZ, az ΠΈ 0-9), ΠΌΠ½ΠΎΠ³ΠΎΠ±Π°ΠΉΡΠΎΠ²ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ (Π’Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Emojis π’) ΠΈ ΠΎΠ±ΡΠ°ΡΠ½Π°Ρ ΠΊΠΎΡΠ°Ρ ΡΠ΅ΡΡΠ° (\).
β ΠΠΎ Π·Π°ΡΠ΅ΠΌ Π²ΡΠ±ΠΈΡΠ°ΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ? ΠΡΡ Π΄Π΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²ΡΠ΅ Π²Ρ
ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»Π° ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½Ρ, ΠΏΠΎΡΠΎΠΌΡ Π½Π° Π²ΡΡ
ΠΎΠ΄Π΅ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ:
preg_match('/^https:\/\/example.com\/path/i', $uri);
// ΠΈΠ»ΠΈ
preg_match('~^https://example.com/path~i', $uri);
π ΠΠΌΠ΅Π½ΡΠΉΡΠ΅ ΡΠΊΠΎΠ±ΠΎΡΠ½ΡΠ΅ Π³ΡΡΠΏΠΏΡ (Π³ΡΡΠΏΠΏΡ Π·Π°Ρ
Π²Π°ΡΠ°)
Π‘ΠΊΠΎΠ±ΠΎΡΠ½ΡΠΌΠΈ Π³ΡΡΠΏΠΏΠ°ΠΌΠΈ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠΎ, ΡΡΠΎ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π²Π½ΡΡΡΠΈ () ΡΠΊΠΎΠ±ΠΎΠΊ. ΠΠ°ΠΉΠ΄Π΅Π½Π½ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π±ΡΠ΄ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Ρ Π² $matches.
$pattern = '~Price: (Β£|β¬)(\d+)~';
// ΠΈΠ»ΠΈ
$pattern = '~Price: (?<currency>Β£|β¬)(?<price>\d+)~';
ΠΠΌΠ΅Π½ΡΡ ΡΠΊΠΎΠ±ΠΎΡΠ½ΡΠ΅ Π³ΡΡΠΏΠΏΡ, ΠΌΡ ΡΡΠ°Π·Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π΄Π²Π° ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°: ΡΡΠΎ ΡΠΏΡΠΎΡΡΠΈΡ ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π½Π° Π±ΡΠ΄ΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½Ρ Π² $matches;
π ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ
ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π²Π°ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½ΡΠΌ. Π‘Π°ΠΌΡΠΉ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ \d - ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΎΠ΄Π½Ρ ΡΠΈΡΡΡ (ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ [0-9]), ΠΏΡΠΈ ΡΡΠΎΠΌ \D (Π² Π²Π΅ΡΡ
Π½Π΅ΠΌ ΡΠ΅Π³ΠΈΡΡΡΠ΅) ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ [^0-9] ΡΠΎ Π΅ΡΡΡ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΡΡΠΎΠΉ. Π’ΠΎ Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π΅ΡΡ
Π½Π΅Π³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ.
\w ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠ»ΠΎΠ²Ρ (ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΡΡΠΎΡΡΡ ΠΈΠ· Π±ΡΠΊΠ², ΡΠΈΡΡ ΠΈ ΠΏΠΎΠ΄ΡΡΡΠΊΠΈΠ²Π°Π½ΠΈΡ) A-Za-z0-9_
\s ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΏΡΠΎΠ±Π΅Π»Π° (Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ°Π±ΡΠ»ΡΡΠΈΡ ΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ)
. ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π»ΡΠ±ΠΎΠΌΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ
π Π’Π°ΠΊ-ΠΆΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΏΠΎΠΌΡΠ½ΡΡΡ, ΡΡΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ unicode (ΡΠ»Π°Π³ /u), Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅ΡΠ΅ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΡ
ΠΊΠ»Π°ΡΡΠΎΠ² \p{}. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
\p{Sc} β Π»ΡΠ±ΠΎΠΉ Π·Π½Π°ΠΊ Π²Π°Π»ΡΡΡ
\p{P} β Π»ΡΠ±ΠΎΠΉ Π·Π½Π°ΠΊ ΠΏΡΠ½ΠΊΡΡΠ°ΡΠΈΠΈ
\p{L} β Π»ΡΠ±Π°Ρ Π±ΡΠΊΠ²Π° ΠΈΠ· Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°
ΠΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π·Π΄Π΅ΡΡ.
#junior #regexp #source3 746
Tell, Don't Ask (TDA)
ΠΡΠ΅ Π² 1997 Π³ΠΎΠ΄Ρ Π. Π¨Π°ΡΠΏ ΡΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°Π» ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΈΠ½ΡΠΈΠΏ:
π ΠΡΠΎΡΠ΅Π΄ΡΡΠ½ΡΠΉ ΠΊΠΎΠ΄ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ. ΠΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄ Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ.
Π’ΠΎ, ΡΡΠΎ ΠΌΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² β Π½Π°ΡΡΡΠ°Π΅Ρ ΠΈΡ
information hiding. Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠΊΡΡΠ»ΠΈ Π΄Π΅ΡΠ°Π»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΡΠΎ ΡΠΏΡΠΎΡΡΠΈΠ»ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ΄Π΅Π»Π°Π»ΠΎ Π½Π°Ρ ΠΎΠ±ΡΠ΅ΠΊΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΡΠΎΠ·Π½Π°Π½Π½ΡΠΌ.
βοΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΎΠ±ΡΡΠ½ΠΎ Π² ΡΡΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΠΊΡΠΎ-ΡΠΎ Π²ΡΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ ΠΏΡΠΎ "Π°Π½Π΅ΠΌΠΈΡΠ½ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ", Π° ΠΊΡΠΎ-ΡΠΎ ΠΏΡΠΎ "god objects" ΠΈ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Π΄ΠΈΠΊΠΈΠΉ ΡΡΠ°Ρ, ΡΠ°ΠΊ ΡΡΠΎ Π±ΡΠ΄ΡΡΠ΅ Π³ΠΎΡΠΎΠ²Ρ, Π΅ΡΠ»ΠΈ Ρ
ΠΎΡΠΈΡΠ΅ Ρ ΠΊΠ΅ΠΌ-ΡΠΎ ΠΎΠ±ΡΡΠ΄ΠΈΡΡ ΡΡΡ ΡΠ΅ΠΌΡ ;)
π ΠΡΠΈΠ½ΡΠΈΠΏΡ β ΡΡΠΎ Π½Π΅ ΠΈΡΡΠΈΠ½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΠΈΠ½ΡΡΠ°Π½ΡΠΈΠΈ. ΠΠ΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎ, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π΄Π΅ΡΠΆΠ°ΡΡ TDA Π² Π³ΠΎΠ»ΠΎΠ²Π΅, Π½ΠΎ Π½Π΅ ΡΠ»Π΅ΠΏΠΎ Π΅ΠΌΡ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ. ΠΠ° ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ:
πΉ Π Π°Π·Π΄ΡΡΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΠΈΡ
ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ;
πΉ Π£Π²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ coupling ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ ΡΡΠΎ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ;
πΉ ΠΠ°ΡΡΡΠ΅Π½ΠΈΡ SRP (single responsibility principle) Π² ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ²;
β Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, Π΅ΡΠ»ΠΈ Π΄Π»Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ
User Π²Π°ΠΌ Π½ΡΠΆΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ email ΠΈ password, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΡΠ°ΡΡΠΈΡ Π² Π΄ΡΡΠ³ΠΈΡ
ΠΏΡΠΎΡΠ΅ΡΡΠ°Ρ
, ΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π»ΠΈ Π²ΡΡ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ΅? ΠΠ»ΠΈ ΡΡΠΎ ΡΠΎΠ²ΡΠ΅ΠΌ Π΄ΡΡΠ³ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π½Π°ΠΏΡ. Credentials?
ΠΠΎΠ½Π΅ΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π·Π°Π΄Π°ΡΠΈ ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°, Π½ΠΎ Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎΠΈΡ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Π·Π΄ΡΠ°Π²ΠΎΠ³ΠΎ ΡΠΌΡΡΠ»Π°.
#oop #middle #source3 746
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² Π² MySQL (part 2)
ΠΠΎΡ Π΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π°ΠΆΠ½ΡΡ
Π·Π°ΠΌΠ΅ΡΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ°.
π ΠΠΎΠ²ΡΠΎΡΡΡΡΠΈΠ΅ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΠΌΠΎΠ³ΡΡ Π½Π΅ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡΡ Π·Π°ΠΏΡΠΎΡΡ SELECT, Π½ΠΎ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠ³ΡΡ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡΡ Π·Π°ΠΏΡΠΎΡΡ Π½Π° INSERT (Π° Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΠ»ΡΡΠ°ΡΡ
ΠΈ UPDATE). Π ΡΠ΅Π»ΠΎΠΌ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΠ·Π±Π΅Π³Π°ΡΡ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Π΅ΡΠ»ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ 2 ΠΈΠ½Π΄Π΅ΠΊΡΠ°:
KEY `firstname` (`firstname`),
KEY `firstname_lastname_id` (`firstname`,`lastname`,`id`)
ΡΠΎ firstname ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΡΠ±Π»ΠΈΠΊΠ°ΡΠΎΠΌ firstname_lastname_id, ΡΠ°ΠΊ ΠΊΠ°ΠΊ firstname ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ²ΡΠΌ ΡΡΠΎΠ»Π±ΡΠΎΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠ° firstname_lastname_id.
π ΠΠΎΡ ΡΡΠ»Π·Π°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΡΡ Π½Π°ΠΉΡΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ ΠΈ ΡΠ΅ΡΠΈΡΡ, ΠΊΠ°ΠΊ Ρ Π½ΠΈΠΌΠΈ ΠΏΠΎΡΡΡΠΏΠ°ΡΡ.
π ΠΠ±ΡΠ°ΡΠ½Π°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ, Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ΄Π°Π»ΡΡΡ Ρ.ΠΊ. ΡΡΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ°ΡΡ
ΠΎΠ΄Ρ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° Π²ΡΡΠ°Π²ΠΊΡ ΠΈ Π°ΠΏΠ΄Π΅ΠΉΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π΅ΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄Π½Π° ΡΡΠ»Π·Π°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΡΡ Π½Π°ΠΉΡΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΊΠ΅ΠΉΡΡ, Π½ΠΎ ΠΏΠΎΡΠ»Π΅ Π½Π°Ρ
ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ Π²ΡΡΡΠ½ΡΡ, ΡΡΠΎΠ±Ρ Π½Π΅ ΡΠ΄Π°Π»ΠΈΡΡ Π»ΠΈΡΠ½Π΅Π³ΠΎ.
π ΠΠ°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡΠΈΠΈ 8+, MySQL ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΠΏΠΎ ΡΠ±ΡΠ²Π°Π½ΠΈΡ (Π½ΠΈΡΡ
ΠΎΠ΄ΡΡΠΈΠ΅, DESC), ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Ρ
ΡΠ°Π½ΠΈΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΡΠ±ΡΠ²Π°Π½ΠΈΡ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡΡ, ΠΊΠΎΠ³Π΄Π° Ρ Π²Π°Ρ Π΅ΡΡΡ Π²ΡΠ±ΠΎΡΠΊΠΈ Π³Π΄Π΅ Π½Π°Π΄ΠΎ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅.
CREATE TABLE t (
c1 INT, c2 INT,
INDEX idx1 (c1 ASC, c2 ASC),
INDEX idx2 (c1 ASC, c2 DESC),
INDEX idx3 (c1 DESC, c2 ASC),
INDEX idx4 (c1 DESC, c2 DESC)
);
π Π’Π°ΠΊΠΆΠ΅ Ρ Π²Π°Ρ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π½ΡΠΆΠ½Ρ Π²Π°ΠΌ Π² Π²ΡΠ±ΠΎΡΠΊΠ΅ ΠΈΠ»ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ Π½ΡΠΆΠ½Ρ ΡΠ΅Π΄ΠΊΠΎ. ΠΠΎΠ΄ΡΠΌΠ°ΠΉΡΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ ΡΠ°ΠΊΡΡ ΡΠ°Π±Π»ΠΈΡΡ (Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ»ΠΈ ΠΏΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
). ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΡΠΊΠΎΡΠΈΡ Π²ΡΠ±ΠΎΡΠΊΡ ΠΈ ΡΠ½ΠΈΠ·ΠΈΡ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ CPU.
π ΠΡΠ»ΠΈ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ ΠΏΠ΅ΡΠ²ΡΠΌ Π΄Π²ΡΠΌ ΠΏΡΠ½ΠΊΡΠ°ΠΌ ΡΡΠΎΠΉ Π·Π°ΠΌΠ΅ΡΠΊΠΈ, ΡΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΏΠΎΠΌΡΠ½ΡΡΡ, ΡΡΠΎ Ρ Percona Toolkit ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ Π½Π°Π±ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², Ρ ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ ;) ΠΡΠ»ΠΈ ΠΈ ΡΡΠΎΡ ΠΏΠΎΡΡ Π½Π°Π±Π΅ΡΠ΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ πΊ, ΡΠΎ Π½Π°ΠΏΠΈΡΡ ΠΊΠΎΡΠΎΡΠΊΡΡ Π·Π°ΠΌΠ΅ΡΠΊΡ ΠΎ ΡΠ°ΠΌΡΡ
ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ
Π½Π° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄.
#MySQL #junior #source3 746
ΠΡΠ°Π²ΠΈΠ»Π° ΠΏΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Entity (part 1)
π Π ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ
ΡΡΠ°ΡΡΡΡ
Ρ ΡΠΆΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· ΡΡΡΠ»Π°Π»ΡΡ Π½Π° ΠΏΠΎΠ½ΡΡΠΈΠ΅ ΡΡΡΠ½ΠΎΡΡΠΈ Entity. Π Π°Π·Π½ΡΠ΅ Π°Π²ΡΠΎΡΡ (Π½Π°ΠΏΡ. ΠΠ²Π°Π½Ρ, ΠΠΎΠ±Π°ΠΊ, ΠΠ΅ΡΠ½ΠΎΠ½) Π΄Π°ΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π½ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ½ΡΡΠΈΡ, Π½ΠΎ ΡΡΡΡ ΡΠΈΠ»ΡΠ½ΠΎ ΠΎΡ ΡΡΠΎΠ³ΠΎ Π½Π΅ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ.
Π‘ΡΡΠ½ΠΎΡΡΠΈ β ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ
ΡΠ°Π½ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎ Π½Π΅ "ΠΏΡΠΎΡΡΠΎ Ρ
ΡΠ°Π½ΡΡ".
Π Π²ΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ°Π²ΠΈΠ», ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²Π°ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ:
π Π‘ΡΡΠ½ΠΎΡΡΡ Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°ΡΠΈΡΠ°ΡΡ ΡΠ²ΠΎΠΈ Π΄ΠΎΠΌΠ΅Π½Π½ΡΠ΅ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΈ ΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° ΡΠ΅ΠΌ, ΡΡΠΎΠ±Ρ ΠΎΠ½Π° Π½Π°Ρ
ΠΎΠ΄ΠΈΠ»Π°ΡΡ Π² ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ. ΠΠ½Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π΅ΡΠ»ΠΈ Π²Π½ΡΡΡΠΈ Π½Π΅ΠΏΠΎΠ»Π½ΡΠ΅ ΠΈΠ»ΠΈ Π½Π΅Π²Π°Π»ΠΈΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅.
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ, ΡΡΠΎ Π΄Π°Π½Π½ΡΠ΅ Π°Π΄Π΅ΠΊΠ²Π°ΡΠ½Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ Π² Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅, Π²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ ΠΈ Ρ.Π΄. Π ΡΠ»ΡΡΠ°Π΅ Π΅ΡΠ»ΠΈ ΡΡΠΎ-ΡΠΎ Π½Π΅ ΡΠ°ΠΊ - Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠ±ΡΠ°ΡΡΠ²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
π ΠΠΎΠ³Π΄Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ΅ Π½Π°Π΄ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ Π΄Π»Ρ Π½Π΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄ Π² ΡΠ°ΠΌΠΎΠΉ ΡΡΡΠ½ΠΎΡΡΠΈ. ΠΠ°Π΄Π°ΡΠ° ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠ°ΠΊΠΆΠ΅ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ
Π΅ΠΌΡ Π΄Π°Π½Π½ΡΡ
, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅, ΡΡΠΈΡΡΠ²Π°Ρ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Ρ Π·Π°ΠΊΠ°Π·Π°ΠΌΠΈ. ΠΠ°ΠΊΠ°Π· ΡΠΎΠ²Π°ΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠΌΠ΅Π½Π΅Π½, Π΅ΡΠ»ΠΈ ΠΎΠ½ Π½Π΅ Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½. ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π³Π΄Π΅-ΡΠΎ Π²ΠΎ Π²Π½Π΅ ΡΡΡΠ½ΠΎΡΡΠΈ Π΄Π΅Π»Π°ΡΡ:
$order->getStatus(),
// isn't delivered
$order->setCancel()
ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ cancel(), ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π²Π½ΡΡΡΠΈ ΡΡΡΠ½ΠΎΡΡΠΈ ΠΈ Π΅ΡΠ»ΠΈ Π²ΡΡ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΎ β ΠΌΠ΅Π½ΡΡΡ Π΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.
π ΠΠ΅ Π΄ΡΠΌΠ°ΠΉΡΠ΅ Π²ΡΡ Π²ΡΠ΅ΠΌΡ ΠΎ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ
.
Π‘ΡΠΎΠΈΡ ΠΎΠ³ΠΎΠ²ΠΎΡΠΈΡΡΡΡ, ΡΡΠΎ ΡΠ΅ΡΡ ΠΈΠ΄ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΡΡΠΊΡΡΡΡ ΠΈ ΡΠ°ΠΌΠΎΠΉ ΡΡΡΠ½ΠΎΡΡΠΈ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΡΡΠ°Π΅Π², ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡΡΡ Ρ Π½Π°ΡΠ΅ΠΉ Π±Π°Π·ΠΎΠΉ (Π²ΡΡΠΎΠΊΠ°Ρ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ², deadlocks ΠΈ Ρ.Π΄.), Π½ΠΎ ΠΈΠ΄Π΅Ρ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΡΡΡΠΎΠΈΡΡ ΠΌΡΡΠ»Π΅Π½ΠΈΠ΅ ΠΈ Π΄ΡΠΌΠ°ΡΡ ΠΎΠ± ΠΎΠ±ΡΠ΅ΠΊΡΠ°Ρ
, ΠΊΠ°ΠΊ ΠΎ Π²Π΅ΡΠ°Ρ
Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ ΠΌΠΈΡΠ΅, Π° Π½Π΅ ΠΊΠ°ΠΊ ΠΎ Π΄Π°Π½Π½ΡΡ
Π² ΡΠ°Π±Π»ΠΈΡΠ΅. ΠΡΠΎΡΡΠΎ ΠΏΡΠΈΠΌΠΈΡΠ΅ Π΄Π»Ρ ΡΠ΅Π±Ρ, ΡΡΠΎ ΠΌΠ°ΠΏΠΏΠΈΠ½Π³ Π΄Π°Π½Π½ΡΡ
Π² ΠΠ ΡΡΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ Π·Π°Π΄Π°ΡΠ°.
π ΠΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ°Π²ΠΈΠ», ΠΊΠ°ΡΠ°ΡΡΠΈΡ
ΡΡ ID, ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΡΠ²ΡΠ·Π΅ΠΉ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΡΡΠ½ΠΎΡΡΡΠΌΠΈ, ΡΠΈΡΠΊΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² Π±ΡΠ΄ΡΡ Π²ΠΎ Π²ΡΠΎΡΠΎΠΉ ΡΠ°ΡΡΠΈ.
#php #oop #junior #entity #source3 746
Whole value concept (Quantity pattern)
Π― ΡΠ°ΡΡΠΎ Π²ΠΈΠΆΡ, ΡΡΠΎ ΡΡΠΎΠΌΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΡ ΡΠ΄Π΅Π»ΡΡΡ ΠΌΠ°Π»ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ ΠΏΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Value Objects, ΠΏΠΎΡΠΎΠΌΡ ΡΠ΅ΡΠΈΠ» ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ Π½Π° Π½ΡΠΌ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡΡ.
βοΈΠ‘Π»Π΅Π΄ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΡΠ°ΠΌΠΊΠ°Ρ
Π²Π°ΡΠ΅Π³ΠΎ Π±ΠΈΠ·Π½Π΅ΡΠ°.
π ΠΠ΄Π΅Ρ ΠΏΡΠΎΡΡΠ°Ρ. ΠΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ, ΡΡΠΎ Ρ Π½Π°Ρ Π΅ΡΡΡ Π³Π΅ΠΎΠΏΠΎΠ·ΠΈΡΠΈΡ. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ Π³Π΄Π΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΡΠΊΠ° Π½Π°ΠΌ Π½ΡΠΆΠ½Π° ΠΈ ΡΠΈΡΠΎΡΠ° ΠΈ Π΄ΠΎΠ»Π³ΠΎΡΠ°. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ°ΠΌΠΈ ΠΏΠΎ ΡΠ΅Π±Π΅ "ΡΠΈΡΠΎΡΠ°" ΠΈΠ»ΠΈ "Π΄ΠΎΠ»Π³ΠΎΡΠ°" Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΡΠΌΡΡΠ»Π° Π΄ΡΡΠ³ Π±Π΅Π· Π΄ΡΡΠ³Π°, Π·Π½Π°ΡΠΈΡ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅, Π²Π½ΡΡΡΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ VO, Π΅ΡΠ»ΠΈ ΡΠ°ΠΌΠΈ ΠΏΠΎ ΡΠ΅Π±Π΅ ΠΎΠ½ΠΈ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π·Π½Π°ΡΠ°Ρ, Π° ΡΠΎΠ»ΡΠΊΠΎ ΡΠ²Π»ΡΡΡΡΡ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
π ΠΡΡΠ³ΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ. Π£ Π½Π°Ρ Π΅ΡΡΡ ΡΡΠΌΠΌΠ° Π΄Π΅Π½Π΅Π³, ΠΊΠΎΡΠΎΡΡΡ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ»ΠΎΠΆΠΈΡΡ Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΌΠΌΠΎΠΉ. Π§ΡΠΎΠ±Ρ ΠΏΡΠΈΠ½ΡΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Π»ΠΈ ΠΌΡ ΡΠ»ΠΎΠΆΠΈΡΡ Π΄Π²Π΅ amount, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ currency. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ currency Π½Π°ΠΏΡΡΠΌΡΡ Π²Π»ΠΈΡΠ΅Ρ Π½Π° Π»ΠΎΠ³ΠΈΠΊΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ, ΡΠΎ ΠΎΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡΡ ΡΠ°ΠΌ-ΠΆΠ΅, Π³Π΄Π΅ ΠΈ amount.
ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ, ΡΠ°ΠΊΠΈΠ΅ ΡΡΡΠΊΠΈ ΠΊΠ°ΠΊ Π²Π°Π»ΡΡΠ°, ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ, ΠΊΠ°Π»Π΅Π½Π΄Π°ΡΠ½ΡΠΉ ΠΏΠ΅ΡΠΈΠΎΠ΄, Π½ΠΎΠΌΠ΅Ρ ΡΠ΅Π»Π΅ΡΠΎΠ½Π°, ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅, Π²Π΅Ρ ΠΈ Ρ.Π΄.
π Π’ΠΎ Π΅ΡΡΡ Π΅ΡΠ»ΠΈ Ρ Π½Π°Ρ Π΅ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π»ΠΈΡΡΡ Π½Π° Π»ΠΎΠ³ΠΈΠΊΡ - ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ°ΡΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π³Π΄Π΅ ΡΡΠ° Π»ΠΎΠ³ΠΈΠΊΠ° ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π°. ΠΠ°-Π΄Π°, Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ(Π»ΠΎΠ³ΠΈΠΊΠ°) ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡΡ Π²Π½ΡΡΡΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅/Π²ΡΡΠΈΡΠ°Π½ΠΈΠ΅ Π΄Π΅Π½Π΅Π³ ΠΈΠ»ΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΡ Π² ΡΠ»ΡΡΠ°Π΅ Ρ Π³Π΅ΠΎ).
π ΠΡΠ»ΠΈ ΠΆΠ΅ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ Ρ
ΡΠ°Π½ΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π° Π»ΠΎΠ³ΠΈΠΊΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ Π² ΡΡΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ Π²Π»ΠΈΡΡΡ - Π±ΡΠ»ΠΎ Π±Ρ Π½Π΅ΠΏΠ»ΠΎΡ
ΠΎ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΎΡΡΡΠ΄Π° Π²ΡΠ½Π΅ΡΡΠΈ ΡΡΠΎ Π±Ρ Π½Π΅ ΠΌΠ΅ΡΠ°Π»ΠΈ.
β ΠΡΠΎ Π½Π΅ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΡΡΠ°ΡΡ ΠΎΠ±ΠΎΡΠ°ΡΠΈΠ²Π°ΡΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΠ΅ ΡΠΈΠΏΡ (ΡΡΡΠΎΠΊΠΈ, ΡΠΈΡΠ»Π° ΠΈ Ρ.Π΄.). ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΠΏΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠΎΠΈΡ Π·Π°Π΄ΡΠΌΡΠ²Π°ΡΡΡΡ ΠΎ ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎΡΡΠΈ ΡΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² Π²Π°ΡΠ΅ΠΉ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ.
#php #oop #middle #source
3 746
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ π±
β ΠΡΠΊΠ²Π°Π»ΡΠ½ΠΎ Π½Π° Π΄Π½ΡΡ
ΠΏΡΠΈΡΠ΅Π» Π²ΠΎΠΏΡΠΎΡ ΠΎΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΎΠ² ΠΊΠ°ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ°. ΠΠ²ΡΡΠ°Π» ΠΎΠ½ ΡΠ°ΠΊ: "
Π Π·Π°ΡΠ΅ΠΌ Π΄Π΅Π»Π°ΡΡ callbackβΠΈ Π² ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ (usort), ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ?" Π Ρ ΠΏΠΎΠ΄ΡΠΌΠ°Π», ΡΡΠΎ ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Ρ
ΠΎΡΠΎΡΠΈΠΉ Π²ΠΎΠΏΡΠΎΡ, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠΎΠΈΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅.
π ΠΠ· Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ:
ΠΡΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΠΊΠ»Π°ΡΡΠ°, ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΊΠ»Π°ΡΡ Π±ΡΠ΄Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ²ΡΠ·Π°Π½ Ρ Π½ΠΈΠΌ, Π΄Π΅Π»Π°Ρ $this Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ Π²Π½ΡΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΊΠ»Π°ΡΡΠ°. ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ Ρ
ΠΎΡΠΈΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ Ρ ΡΠ΅ΠΊΡΡΠΈΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΡΡ
ΠΎΠ΄ΠΈΡ, ΡΡΠΎ ΠΊΠΎΠ³Π΄Π° closure ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΠΊΠ»Π°ΡΡΠ°, ΡΠΎ ΠΊΠ»Π°ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΊ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ $this Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π²Π½ΡΡΡΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠΎΡ ΡΠ°ΠΊΠΎΠΉ Π²ΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ.
βοΈΠΠ° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄ "Π΄Π° ΠΈ ΡΡΡΡ Ρ Π½ΠΈΠΌ", Π½ΠΎ ΡΡΠΎΠΈΡ ΠΊΠΎΠΏΠ½ΡΡΡ ΡΡΡΡ Π³Π»ΡΠ±ΠΆΠ΅.
ΠΠ°ΠΌΡΠΊΠ°Π½ΠΈΠ΅, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π΅ ΡΡΡΠ»ΠΊΡ Π½Π° $this, ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ ΡΠ±ΠΎΡΠΊΡ ΠΌΡΡΠΎΡΠ° Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΡΡΠΎ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΌΠΎΠΆΠ΅Ρ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ static ΠΈ Π±Π΅Π· Π½Π΅Π³ΠΎ. ΠΡ ΠΈ gist, ΡΡΠΎΠ±Ρ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠΈΠ³ΡΠ°ΡΡΡΡ.
π ΠΡΠ»ΠΈ ΠΏΠΎΠ΄Π²Π΅ΡΡΠΈ ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΠΈΡΠΎΠ³, ΡΠΎ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π±Π΅Π· static ΡΡΠΎΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΈΠ²ΡΠ·Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠΎ Π²ΡΠ΅Ρ
ΠΎΡΡΠ°Π»ΡΠ½ΡΡ
ΡΠ»ΡΡΠ°ΡΡ
ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ static, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ, ΡΡΠΎΠ±Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ Π½Π΅ Π²ΡΡΡΡΠ΅Π»ΠΈΡΡ ΡΠ΅Π±Π΅ Π² Π½ΠΎΠ³Ρ.
#php #middle #memory #source3 746
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² Π² MySQL
Π§Π΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΠΌΡ ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ORM, ΡΠ΅ΠΌ ΠΌΠ΅Π½ΡΡΠ΅ Π·Π°Π΄ΡΠΌΡΠ²Π°Π΅ΠΌΡΡ ΠΎΠ± ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΠ, Π΄ΠΎ ΡΠ΅Ρ
ΠΏΠΎΡ ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΡΠΈΠΆΠΌΡΡ. Π ΠΏΡΠΎΡΡΡΡ
ΠΊΠ΅ΠΉΡΠ°Ρ
Π΄Π»Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ, Π½ΠΎ Π΅ΡΠ»ΠΈ ΡΠ»ΡΡΠ°ΠΉ ΡΡΡΡ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ ΡΠ΅ΠΌ "Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ", ΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠ°ΡΡΠΎ Π½Π΅ Π·Π½Π°ΡΡ Π·Π° ΡΡΠΎ Ρ
Π²Π°ΡΠ°ΡΡΡΡ. ΠΠ΄Π΅ΡΡ Ρ
ΠΎΡΡ ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΠ°ΡΡ Π·Π°ΠΌΠ΅ΡΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π½Π°ΡΠΎΠ»ΠΊΠ½ΡΡΡ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π² ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ.
π ΠΡΠ΅ ΠΌΡ Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ° ΡΡΡΠΎΠΊ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΡΡΠΎΠ»Π±ΡΠΎΠ². ΠΠ΅Π· ΠΈΠ½Π΄Π΅ΠΊΡΠ° MySQL Π±ΡΠ΄Π΅Ρ Π½Π°ΡΠΈΠ½Π°ΡΡ ΠΏΠΎΠΈΡΠΊ Ρ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, Π° Π·Π°ΡΠ΅ΠΌ ΡΠΈΡΠ°ΡΡ Π²ΡΡ ΡΠ°Π±Π»ΠΈΡΡ. Π§Π΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ°Π±Π»ΠΈΡΠ°, ΡΠ΅ΠΌ Π΄ΠΎΡΠΎΠΆΠ΅ ΡΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ.
β ΠΠ° ΡΡΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ?
β’ ΠΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ ΡΠ»ΡΡΠ°ΠΉ ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄Π½Π° ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ
. Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ MySQL Π²ΡΠ±ΠΈΡΠ°Π΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΊΠΎΡΠΎΡΡΠΉ Π²Π΅ΡΠ½Π΅Ρ Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠ΅Π΅ ΠΊΠΎΠ»-Π²ΠΎ ΡΡΡΠΎΠΊ (Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΈΠ·Π±ΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ).
β’ ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΎΡΡΠ°Π²Π½ΠΎΠ³ΠΎ (ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΠΎΠ³ΠΎ) ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΠΏΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΈ Π² Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΡΡ
Π²ΡΠ±ΠΎΡΠΊΠ°Ρ
, Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ ΡΡΠΎΠ»Π±ΡΠ°ΠΌ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΠΌ ΡΠ»Π΅Π²Π° Π½Π°ΠΏΡΠ°Π²ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡ
(col1, col2, col3) Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠΎΠΊ (col1), (col1, col2), ΠΈ (col1, col2, col3), Π½ΠΎ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π΄Π»Ρ (col2, col3) ΠΈΠ»ΠΈ (col3).
π€ ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΡΠΎΠΊ ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ
ΡΠ°Π±Π»ΠΈΡ ΠΏΡΠΈ JOIN
β’ ΠΠ»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΡΡΡΠΎΠΊΠΎΠ²ΡΡ
ΡΡΠΎΠ»Π±ΡΠΎΠ² ΠΎΠ±Π° ΡΡΠΎΠ»Π±ΡΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ΄Π½Ρ ΠΈ ΡΡ ΠΆΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΡΠΎΠ»Π±ΡΠ° utf8 ΡΠΎ ΡΡΠΎΠ»Π±ΡΠΎΠΌ latin1 ΠΈΡΠΊΠ»ΡΡΠ°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠ°.
β’ MySQL ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠΈΠΏΠ° ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ°. Π ΡΡΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ VARCHAR ΠΈ CHAR ΡΡΠΈΡΠ°ΡΡΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌΠΈ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Ρ Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, VARCHAR (10) ΠΈ CHAR (10) ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ, Π° VARCHAR (10) ΠΈ CHAR (15) - Π½Π΅Ρ.
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΡΠΎΠ»Π±ΡΠΎΠ² ΡΠ°Π·Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, VARCHAR Ρ DATETIME ΠΈΠ»ΠΈ INT) ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅ΠΏΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ², Π΅ΡΠ»ΠΈ ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Π² ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ Ρ Π²Π°Ρ INT 1, Π° Π² Π΄ΡΡΠ³ΠΎΠΉ VARCHAR ' 1' ΠΈΠ»ΠΈ '00001'.
π ΠΠ΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎΠ΅
β’ ΠΠ½Π΄Π΅ΠΊΡΡ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½Ρ Π΄Π»Ρ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΡ
ΡΠ°Π±Π»ΠΈΡ ΠΈΠ»ΠΈ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΡ
, ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ
Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·Π²Π»Π΅ΡΡ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ»ΠΈ Π±ΠΎΠ»ΡΡΡΡ ΠΈΡ
ΡΠ°ΡΡΡ. Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ. ΠΡΡ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΡΡΡ ΠΏΠΎΠΈΡΠΊ Π½Π° Π΄ΠΈΡΠΊΠ΅, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π½Π°ΠΌ Π½ΡΠΆΠ½Ρ Π½Π΅ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π²ΡΠ΅ ΡΡΡΠΎΠΊΠΈ.
β’ ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΡ ΠΏΠΎ Π²ΡΠ±ΠΎΡΡ ΠΈΠ»ΠΈ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ°.
SELECT * FROM table1 USE INDEX (col1_index,col2_index) WHERE col1=1 AND col2=2 AND col3=3; SELECT * FROM table1 IGNORE INDEX (col3_index) WHERE col1=1 AND col2=2 AND col3=3;π Π‘ΡΠ°Π²Ρ πΊ Π΅ΡΠ»ΠΈ Π±ΡΠ»ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΈ Π΅ΡΠ»ΠΈ Ρ ΠΎΡΠ΅ΡΡ Π΅ΡΠ΅ Π·Π°ΠΌΠ΅ΡΠΎΠΊ ΠΏΠΎ ΡΡΠΎΠΉ ΡΠ΅ΠΌΠ΅. #MySQL #junior #source
3 746
Π‘Π΅ΡΡ β Π½Π΅Π½Π°Π΄ΡΠΆΠ½Π°
π ΠΠ°Π²Π°ΠΉΡΠ΅ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ "Π‘Π΅ΡΡ β Π½Π΅Π½Π°Π΄ΡΠΆΠ½Π°", ΠΏΡΠΈΠΌΠ΅ΠΌ ΡΡΠΎ ΠΊΠ°ΠΊ Π°ΠΊΡΠΈΠΎΠΌΡ, ΠΊΠ°ΠΊ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΊΠ°ΠΊ Π³ΡΠ°Π²ΠΈΡΠ°ΡΠΈΡ. Π‘Π΅Π³ΠΎΠ΄Π½Ρ, Π² ΡΠΏΠΎΡ
Ρ (ΠΌΠΈΠΊΡΠΎ)ΡΠ΅ΡΠ²ΠΈΡΠΎΠ², ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ»-Π²Π° ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ
ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΡ
ΠΏΠΎ API ΡΡΠΎ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½Π°Ρ Π°ΠΊΡΠΈΠΎΠΌΠ°.
ΠΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½ΡΠΆΠ½ΠΎ ΠΎΠ± ΡΡΠΎΠΌ ΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΈ Π·Π°Π΄Π°Π²Π°ΡΡ ΡΠ΅Π±Π΅ Π²ΠΎΠΏΡΠΎΡΡ:
β’ Π ΡΡΠΎ Π΅ΡΠ»ΠΈ Ρ ΠΏΠΎΠ»ΡΡΡ HTTP timeout exception?
β’ Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ Ρ ΠΏΠΎΡΠ»Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈ Π½Π΅ ΠΏΠΎΠ»ΡΡΡ ΠΎΡΠ²Π΅Ρ?
β’ Π―Π²Π»ΡΠ΅ΡΡΡ Π»ΠΈ Π΄Π°Π½Π½ΡΠΉ Π²ΡΠ·ΠΎΠ² ΠΈΠ΄Π΅ΠΌΠΏΠΎΡΠ΅Π½ΡΠ½ΡΠΌ?
β’ etc.
Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ, ΡΠ°Π· Π²ΡΠ·ΠΎΠ² ΠΏΠΎ ΡΠ΅ΡΠΈ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΡΠ΅ΠΉΠ»ΠΈΡΡΡΡ?
π ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ retry. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡΠ΅ΡΠ΅Π΄ΡΠΌΠΈ.
Π’Π°ΠΊΠΎΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ store and forward, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π² ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ΅ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΈ ΠΏΠΎΠ·Π΄Π½Π΅Π΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΠΏΡΠ½ΠΊΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠ½ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄ΠΎΡΡΠ°Π²ΠΊΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΠΎΡ
ΡΠ°Π½ΡΡΡΡΡ ΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΠ΅ΡΡΡΡΡΡ. ΠΡΠ»ΠΈ Π½Π°Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ offline ΠΈΠ»ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ Π»ΡΠ±ΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ β ΡΠΈΡΡΠ΅ΠΌΠ° ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ ΠΎΡΠΏΡΠ°Π²ΠΊΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ.
βοΈΠΠΎΠ½Π΅ΡΠ½ΠΎ ΡΡΠΎΠΈΡ ΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΎΠ± ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ
Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Π°. ΠΠ»Ρ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½Π΅Ρ Π±ΡΡΡ ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΠΌ. Π‘ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, Π½Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π·Π°ΡΡΠ°Π²Π»ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΆΠ΄Π°ΡΡ, ΠΏΠΎΠΊΠ° Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡ Π²ΡΠ΅ Π½Π°ΡΠΈ ΡΠ΅ΡΠ΅Π²ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ, Π½ΠΎ Ρ Π΄ΡΡΠ³ΠΎΠΉ ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡΠ°Π·Ρ Π²ΡΠ²Π΅ΡΡΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ. Π’ΠΎ Π΅ΡΡΡ ΠΌΡ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΠΌ ΠΎΡ ΠΏΡΠΈΠ²ΡΡΠ½ΠΎΠ³ΠΎ Request/Response ΠΊ Fire and Forget ΠΏΠ°ΡΡΠ΅ΡΠ½Ρ.
π¨ ΠΠΎΠ»ΡΡΠ°Π΅ΡΡΡ, ΡΡΠΎ, ΡΠ΅ΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ, Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΠΉ ΠΎΠ±ΠΌΠ΅Π½ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ Π²ΡΠ½ΡΠΆΠ΄Π°Π΅Ρ Π½Π°Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΡΡ ΡΡ
Π΅ΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΠ΅ΡΠ΅ΠΎΡΠΌΡΡΠ»ΠΈΡΡ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΠΊ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΈ ΠΎΡΠΌΡΡΠ»ΠΈΡΡ Π³ΡΠ°Π½ΠΈΡΡ Π² Π½Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅.
#middle #architecture #source3 746
Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΡΠΏΠ΅ΡΡ Π²Π°Ρ ΠΏΠΎΡΠ°Π΄ΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ²ΡΠΌ Π³ΠΎΡΡΠ΅Π²ΡΠΌ ΠΏΠΎΡΡΠΎΠΌ (Π½Π΅ ΡΠ΅ΠΊΠ»Π°ΠΌΠΎΠΉ). ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΡΡΠΎΡ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½Ρ Π±ΡΠ΄Π΅Ρ ΡΡΠΏΠ΅ΡΠ½ΡΠΌ ΠΈ Π²ΡΠ΅ΠΌΡ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π·Π΄Π΅ΡΡ Π±ΡΠ΄ΡΡ ΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡΡΡ ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ ΠΎΡ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΎΠ².
Unit testing (ΠΏΡΠ΅Π΄ΠΈΡΠ»ΠΎΠ²ΠΈΠ΅, part - 0)
βοΈ ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ΅Π»Ρ ΡΠ½ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ β ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠ΅ Π±ΡΡΡΡΠΎΠ³ΠΎ, Π½Π΅ ΡΠ²Π΅ΡΡ
Π½Π°Π΄ΡΠΆΠ½ΠΎΠ³ΠΎ, Π° ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ.
Π Π½Π°ΡΠ°Π»Π΅ ΠΆΠΈΠ·Π½ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°, ΠΏΠΈΡΠ°ΡΡ Π΅Π³ΠΎ ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ. Π€ΠΈΡΠΈ ΠΏΠΈΠ»ΡΡΡΡ, Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΡΠ΅ΡΡΡ Π² ΠΊΠΎΠ΄ Π±ΡΡΡΡΠΎ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½Ρ, Π±ΠΈΠ·Π½Π΅Ρ ΡΡΠΈΡΠ°Π΅Ρ ΠΏΡΠΈΠ±ΡΠ»Ρ. ΠΠΎ ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ, ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ°ΡΡΠ΅Ρ, Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π²ΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π° ΡΡΠΊΠΈ ΠΏΡΠΈ ΡΠ΅Π»ΠΈΠ·Π΅ Π½Π°ΡΠΈΠ½Π°ΡΡ Π΄ΡΠΎΠΆΠ°ΡΡ.
π Π§Π΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π²Ρ ΠΏΠΈΡΠ΅ΡΠ΅ ΠΊΠΎΠ΄Π°, ΡΠ΅ΠΌ ΡΠΈΠ»ΡΠ½Π΅Π΅ ΡΠ°ΡΡΠ΅Ρ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠ°Ρ "ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½Π°Ρ ΡΠ½ΡΡΠΎΠΏΠΈΡ" (Π½Π°ΡΡΠ½ΡΠΉ ΡΠ΅ΡΠΌΠΈΠ½ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΡΠΈΠΌ!) β ΡΡΠ΅ΠΏΠ΅Π½Ρ Π±Π΅ΡΠΏΠΎΡΡΠ΄ΠΊΠ° Π² ΡΠΈΡΡΠ΅ΠΌΠ΅. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΡΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° ΠΏΠ°Π΄Π°Π΅Ρ, ΠΏΠΎΡΠΎΠΌΡ ΠΊΠ°ΠΊ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΊΠΎΠ³Π΄Π° Π²Ρ ΡΡΠΎΠ³Π°Π΅ΡΠ΅ ΠΊΠΎΠ΄, ΡΠ½ΡΡΠΎΠΏΠΈΡ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ.
Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ? ΠΡΡΡ 2 Π²Π°ΡΠΈΠ°Π½ΡΠ°.
π ΠΠΎΠΆΠ½ΠΎ Π·Π°Π±ΠΈΡΡ Π΅ΡΠ»ΠΈ ΡΡΠΎ:
1. ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΈΠ΄Π΅ΠΈ ΠΈΠ»ΠΈ MVP ΠΏΡΠΎΠ΄ΡΠΊΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ»Π΅ΠΏΠ»Π΅Π½ ΠΈΠ· Π²Π΅ΡΠΎΠΊ ΠΈ ΡΠ°ΠΌΠΈ Π·Π½Π°Π΅ΡΠ΅ ΡΠ΅Π³ΠΎ.
2. Π‘Π°ΠΉΡ Π»Π΅Π½Π΄ΠΈΠ½Π³ / Π²ΠΈΠ·ΠΈΡΠΊΠ° / ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π² ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ°ΠΏΠΏΠΎΡΡ.
3. ΠΡΠΎΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Ρ Π²Π°Ρ Π½Π° ΠΊΠΎΠΌΠΏΠ΅ ΠΈ Π½Π΅ ΠΏΠΎΠΉΠ΄Π΅Ρ Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½.
π ΠΡΠΆΠ½ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π΅ΡΠ»ΠΈ:
1. ΠΡΠΎΠ΄ΡΠΊΡ ΠΏΡΠΎΡΠ΅Π» ΡΡΠ°Π΄ΠΈΡ MVP ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΎΡ Π² Π±ΠΈΠ·Π½Π΅Ρ.
2. ΠΡΠΆΠ΅Π½ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ°ΠΏΠΏΠΎΡΡ.
ΠΡΠΈΡΠ΅ΠΌ ΡΡΡ ΡΠ΅ΡΡΡ? ΠΠ½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ. ΠΠ°ΠΊ? ΠΠ± ΡΡΠΎΠΌ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΠΎΡΡΠ΅.
#intern #unit #testing #author
3 746
ΠΠ°ΠΊ Ρ
ΡΠ°Π½ΠΈΡΡ UUID Π² MySQL?
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ ΡΠ΅Π°Π»ΠΈΠΈ ΡΠ°ΠΊΠΎΠ²Ρ, ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ "Π½ΠΈΠΊΠ°ΠΊ" Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ, Ρ.ΠΊ. MySQL Π²ΡΡ Π΅ΡΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π»ΠΈΠ΄ΠΈΡΡΡΡΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² Π²Π΅Π± ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅, Π½Π΅ ΡΠΌΠΎΡΡΡ Π½Π° Π²ΡΠ΅ Π΅Π³ΠΎ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ.
π ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΎΡ
ΡΠ°Π½ΡΡΡ
UUID Π² CHAR(36) ΠΈ Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΆΠΈΠ²Π°ΡΡ ΠΏΠΎ ΡΡΠΎΠΌΡ ΠΏΠΎΠ²ΠΎΠ΄Ρ. ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ ΠΊΠΎΠ»-Π²ΠΎ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² Π²Π°ΡΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ < 50ΠΊ, ΡΠΎ Π²Ρ ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ Π½Π΅ Π·Π°ΠΌΠ΅ΡΠΈΡΠ΅ Π½ΠΈΠΊΠ°ΠΊΠΈΡ
ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΠΎ ΡΡΠΎ Π΅ΡΠ»ΠΈ Π² ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡ ΠΈΡ
Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠΎΠ»ΡΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°?
Π₯ΡΠ°Π½ΠΈΡΡ ΠΊΠ°ΠΊ BINARY.
π¨ ΠΠ»Π°Π³ΠΎ Ρ Π²ΡΡ
ΠΎΠ΄ΠΎΠΌ 8ΠΉ Π²Π΅ΡΡΠΈΠΈ MySQL ΡΠ°ΡΡΡ ΡΠ°Π½ΡΠ΅Π² Ρ Π±ΡΠ±Π½ΠΎΠΌ Π±ΡΠ»Π° ΠΏΠ΅ΡΠ΅Π½Π΅ΡΠ΅Π½Π° Π² ΠΊΠΎΡΠΎΠ±ΠΊΡ ΠΈ UUID_TO_BIN / BIN_TO_UUID ΡΠΆΠ΅ Π΄Π΅Π»Π°ΡΡ Π²ΡΡ Π·Π° ΡΠ΅Π±Ρ. ΠΠ½ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡ ΡΠΆΠ°ΡΠΈΠ΅ 32 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² (36 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»ΡΠΌΠΈ) Π΄ΠΎ 16-Π±ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΠΌΠ°ΡΠ° ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π΄ΠΎ ΡΠΎΡΠΌΠ°ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ½ΠΎΠ²Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΡ.
INSERT INTO t VALUES(UUID_TO_BIN(UUID())); SELECT BIN_TO_UUID(id) FROM t;π ΠΡ ΡΠΆΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠΌ Π±ΡΡΡ, ΠΈ ΠΎΡΠ΅Π½Ρ Π½Π΅ΠΏΠ»ΠΎΡ ΠΎΠΉ, Ρ.ΠΊ. MySQL ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΡΠ΅Ρ
BINARY, Π΄Π°ΠΆΠ΅ Π»ΡΡΡΠ΅, ΡΠ΅ΠΌ ΠΏΡΠΈΠ²ΡΡΠ½ΡΠΉ Π°Π²ΡΠΎΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ½ΡΠΉ INT. Π Π²ΡΡ Π±Ρ Π½ΠΈΡΠ΅Π³ΠΎ, Π΅ΡΠ»ΠΈ Π±Ρ Π½Π΅ ΠΊΠ»Π°ΡΡΠ΅ΡΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΠ°ΠΊ ΡΠ°Π· ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Ρ PRIMARY KEY. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π΄Π»Ρ Π΅Π³ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ ΠΈ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΡΠ΅ UUID Π² Π±Π°Π·Π΅. ΠΠΎ ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ?
βοΈΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ UUID ΠΏΠ΅ΡΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ Π±ΠΈΡΡ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ. Π Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ UUID_TO_BIN / BIN_TO_UUID ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΠΎΡΠΎΠΉ (Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ, Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ) Π°ΡΠ³ΡΠΌΠ΅Π½Ρ:
INSERT INTO t VALUES (UUID_TO_BIN (UUID (), true));ΠΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ ΠΏΠ΅ΡΠ΅ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΡ Π±ΠΈΡΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ, ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π±ΡΠ»ΠΈ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Ρ ΠΈ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ΅. π ΠΡ ΠΈ ΡΠ°ΠΌΠΎΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ΅ β ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅! π ΠΡΡ ΠΎΠ΄ΠΈΡ, ΡΡΠΎ ΠΏΡΠΈ ΠΌΠ°Π»ΠΎΠΌ ΠΊΠΎΠ»-Π²Π΅ Π·Π°ΠΏΠΈΡΠ΅ΠΉ, Π½Π°Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ
UUID ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ
, ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΡΠΈ 500ΠΊ ΠΎΠ½ ΠΎΠ±Π³ΠΎΠ½ΡΠ΅Ρ ΠΏΠΎ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠΌ INT. Π Π·Π΄Π΅ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΡΠΎΠ²ΡΠ΅ΠΌ Π΄ΡΡΠ³Π°Ρ ΠΈΡΡΠΎΡΠΈΡ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠΎΠ»-Π²ΠΎ ΠΏΠΎΡΡΠ΅Π±Π»ΡΠ΅ΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»-Π²Π° Π·Π°ΠΏΠΈΡΠ΅ΠΉ :)
ΠΠ΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎ, Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΡΠ΅ id β Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, Π½ΠΎ Π²ΡΠ΅Π³Π΄Π° ΡΠ»Π΅Π΄ΡΠ΅Ρ Ρ
ΠΎΡΠΎΡΠΎ ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π² Π³ΠΎΠ»ΠΎΠ²Π΅, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π²Π½Π΅Π΄ΡΠΈΡΡ.
#PHP #MySQL #middle #source3 746
ΠΠ°ΠΊ ΡΠΎΡ
ΡΠ°Π½ΡΡΡ Value Objects (VO) Π² Doctrine?
π ΠΠ΅ΡΠ²ΠΎΠ΅, ΡΡΠΎ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡ Π½Π° ΡΠΌ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
VO ΡΠΎΠ»ΡΠΊΠΎ Π½Π° Π³ΡΠ°Π½ΠΈΡΠ°Ρ
(Π²Ρ
ΠΎΠ΄Π΅ ΠΈ Π²ΡΡ
ΠΎΠ΄Π΅), Π° Π²Π½ΡΡΡΠΈ ΡΠ°ΠΌΠΎΠΉ Entity ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΡΡΠ΅ ΡΠΈΠΏΡ.
ΠΡΠΎΡ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΡΡΡΠ°Π½Π½ΡΠΌ, Π½ΠΎ Π΅ΡΠ»ΠΈ ΠΏΡΠΈΡΠΌΠΎΡΡΠ΅ΡΡΡΡ β ΠΎΠ½ Π²ΠΏΠΎΠ»Π½Π΅ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ, Π²Π΅Π΄Ρ Π΄Π»Ρ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΌΠΈΡΠ° ΠΎΠ±ΡΠ΅ΠΊΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ.
π ΠΠ°ΡΠΈΠ°Π½Ρ ΡΡΡΡ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ - ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ DBAL Types, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΡΠΊΠ°ΠΌΠΈ Π΄Π»Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π½ΡΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ 2 ΠΌΠ΅ΡΠΎΠ΄Π°:
convertToDatabaseValue($value, AbstractPlatform $platform)
convertToPHPValue($value, AbstractPlatform $platform)
ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ, Π΅ΡΠ»ΠΈ Π²Π°Ρ VO Ρ
ΡΠ°Π½ΠΈΡ Π² ΡΠ΅Π±Π΅ ΠΎΠ΄Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΠΏΠΈΡΠ°ΡΡ Π² ΠΎΠ΄Π½Ρ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡ. ΠΠΎ ΡΡΠΎ, Π΅ΡΠ»ΠΈ ΠΈΡ
Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ?
π Embeddables
ΠΠ°Π½Π½ΡΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΠΊΠ»Π°ΡΡ, Π½Π΅ ΡΠ²Π»ΡΡΡΠΈΠΉΡΡ ΡΡΡΠ½ΠΎΡΡΡΡ, Π²Π½ΡΡΡΡ ΡΡΡΠ½ΠΎΡΡΠΈ. ΠΠ°ΠΆΠ΅ΡΡΡ ΠΎΠ½Π° ΠΏΡΠΎΡΡΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²-Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ!
βοΈ ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΅ΡΠ΅ ΡΠ°ΠΊΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±, ΠΊΠ°ΠΊ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ. ΠΠ°ΠΊ ΠΈ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅ Ρ ΠΏΡΠΎΡΡΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ, ΠΏΠΎΠΊΠ° ΡΡΠΎ Π²Π½ΡΡΡΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΡΡΠΎ Π½Π΅ Π±ΠΎΠ»ΡΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π΄Π»Ρ Π²ΡΠ΅ΠΉ Π±ΠΈΠ·Π½Π΅ΡΠΎΠ²ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ. ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅. Π’ΠΎ Π΅ΡΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΡΠ²ΠΎΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
, Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π½Π° 100% ΡΠ²Π΅ΡΠ΅Π½Π½Ρ, ΡΡΠΎ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π·Π°Ρ
ΠΎΡΠΈΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π·Π°ΠΏΡΠΎΡΡ ΠΊ Π½ΠΈΠΌ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π΄Π°Π½Π½ΡΠ΅.
π€¦ββοΈ Π‘ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Embeddables Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΎΡΠ΅Π½Ρ Π³ΡΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΌ, Ρ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Ρ
ΠΎΡΡ ΠΈ ΠΏΡΠΎΡΡΠΎΠΉ, Π½ΠΎ ΠΌΡ Π²Π½ΡΡΡΠΈ ΡΡΡΠ½ΠΎΡΡΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π»ΠΈΡΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ state (Π½Π΅ ΠΊΡΠΈΠΌΠΈΠ½Π°Π»ΡΠ½ΠΎ, Π½ΠΎ Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π΄Π²ΠΎΡΠΊΠΈΠ΅ ΡΡΠ²ΡΡΠ²Π°). ΠΡΠΎ-ΡΠΎ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠΊΠ°ΠΆΠ΅Ρ Π½Π°ΡΡΠ΅Ρ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΉ Π² ΡΡΡΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ "ΡΠΌΠ΅ΡΠΈΠ²Π°ΡΡ ΡΠ»ΠΎΠΈ" (Ρ
ΠΎΡΡ Ρ ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ Ρ.ΠΊ. Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ ΡΡΠΎ ΠΏΠΎ ΡΡΡΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΡΠΎ ΡΡΡΠ½ΠΎΡΡΡ ΠΎΡ ΡΡΠΎΠ³ΠΎ Π½Π΅ ΡΡΡΠ°Π΄Π°Π΅Ρ), ΡΡΠΎ ΡΡΠΎΠΈΡ Ρ
ΡΠ°Π½ΠΈΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π² XML ΠΈΠ»ΠΈ YAML.
π ΠΡΠΎ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠΌΠ±ΠΈΠΎΠ· Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ
ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΎΠ². ΠΡΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π·Π°Π΄Π°ΡΠΈ, Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΠΈ Π²Π°ΡΠΈΡ
Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ΅Π½Π½ΠΎΡΡΠ΅ΠΉ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅.
#PHP #middle #source3 746
ΠΠΎΠ³Π΄Π° ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ?
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ ΠΎ ΡΠΎΠΌ ΠΊΠ°ΠΊ Π±ΡΡΡΡΠΎ ΠΏΡΠΈΠ³ΠΎΡΠΎΠ²ΠΈΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ, Π½ΠΎ ΡΡΠΎΠΈΡ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² ΠΊΠ°ΠΊΠΈΡ
ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ»ΡΡΠ°ΡΡ
ΠΎΠ½Π° Π½ΡΠΆΠ½Π°. ΠΠ΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎ, ΠΈΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΎ ΠΊΡΡΡΠΎΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄, Π½ΠΎ Π² ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ ΡΡΠΎ ΠΎΡΠ½ΠΈΠΌΠ°Π΅Ρ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π²Π΅Π΄Ρ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΊΠΎΠ΄Π°, ΠΏΠΎΠΊΡΡΡΡ Π΅Π³ΠΎ ΡΠ΅ΡΡΠ°ΠΌΠΈ, Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ Π΅Π³ΠΎ ΠΎΡΠ»Π°Π΄ΠΊΠΎΠΉ ΠΈ Ρ.Π΄.
ΠΠΎΡΡΠΎΠΌΡ ΡΡΠΎΠΈΡ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ Π±Π°Π»Π°Π½Ρ, Π²Π΅Π΄Ρ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡΠΌΠΈ Π²ΠΏΠΎΠ»Π½Π΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ.
ΠΠ°ΠΊ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ Π»ΡΡΡΠ΅ Π²ΡΡ ΡΠ°ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ, Π° Π½Π΅ ΠΌΠ°ΡΡΠΈΠ²?
π ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ Π΄ΡΠ±Π»ΠΈΡΡΡΡΠ°ΡΡΡ Π»ΠΎΠ³ΠΈΠΊΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ°Ρ ΡΡΠΎΡ ΠΌΠ°ΡΡΠΈΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ Π² ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΌ ΠΊΠΎΠ΄Π΅, Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΠΌΠ΅ΡΡΠ°Ρ
Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠ°ΡΡΡ Π»ΠΎΠ³ΠΈΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΈΠ»ΡΡΡΡΠ΅Ρ/ΡΠΎΠΊΡΠ°ΡΠ°Π΅Ρ/Π²ΡΠ±ΠΈΡΠ°Π΅Ρ ΠΈ Ρ.Π΄. Π΄Π°Π½Π½ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ½Π΅ΡΡΠΈ Π΅Ρ Π² ΠΌΠ΅ΡΠΎΠ΄ ΠΊΠ»Π°ΡΡΠ° ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ. ΠΠ»ΡΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Π° ΡΠ°ΠΊΠΆΠ΅ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²Ρ Π΄Π°Π΅ΡΠ΅ ΠΎΡΠΎΠ·Π½Π°Π½Π½ΠΎΠ΅ ΠΈΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠ΅, ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΡΡΠ΅ΡΠ΅ Π² ΠΌΠ΅ΡΠΎΠ΄, ΡΡΠΎ ΡΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΠ²ΡΡΠ°Π΅Ρ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½ΠΎΡΡΡ ΠΊΠΎΠ΄Π°.
π ΠΠΎΠ³Π΄Π° ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ, ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°Π΅Ρ Π΅Π³ΠΎ, ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π΄Π°Π½Π½ΡΠ΅, ΡΡΠΎ-ΡΠΎ Ρ Π½ΠΈΠΌΠΈ Π΄Π΅Π»Π°Π΅Ρ, ΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌ Ρ ΡΡΠΈΠΌ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΡΡΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΠ½Π΅ΡΡΠΈ Π½Π°Ρ ΠΌΠ°ΡΡΠΈΠ² Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ, Π΄Π°ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π²Π½ΡΡΡΠΈ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π³ΠΎΡΠΎΠ²ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠ½ΠΈΠ·ΠΈΠ² ΡΠ²ΡΠ·Π°Π½Π½ΠΎΡΡΡ.
#PHP #junior #source
3 746
ΠΠ΄Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ID ΡΡΡΠ½ΠΎΡΡΠΈ (entity)?
ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΎΠΏΡΡΡΠΈΠΌ ΡΠ°ΡΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΠΌ Π°Π²ΡΠΎΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΡ ΠΈΠ· ΠΠ ΠΈ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΡΠ΅
id (uuid) ΠΈ ΡΡΠ°Π·Ρ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊΠΎ Π²ΡΠΎΡΡΠΌ. ΠΡΠ»ΠΈ ΠΎΡΡΠ°Π½ΡΡΡΡ Π²ΠΎΠΏΡΠΎΡΡ, ΡΠΎ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠ±Π΅ΠΆΠΈΠΌΡΡ ΠΈ ΠΏΠΎ ΡΠ΅ΠΌΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ.
ΠΡ Π·Π½Π°Π΅ΠΌ 2 ΠΏΡΠ°Π²ΠΈΠ»Π°:
1. Π‘ΡΡΠ½ΠΎΡΡΠΈ (Entity) Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ.
2. ΠΠ±ΡΠ΅ΠΊΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡΡΡ Π²Π°Π»ΠΈΠ΄Π½ΡΠΌΠΈ.
β ΠΡΡ
ΠΎΠ΄Ρ ΠΈΠ· ΡΡΠΎΠ³ΠΎ Π²ΡΠΎΠ΄Π΅ Π»ΠΎΠ³ΠΈΡΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ uuid Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ. ΠΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ uuid ΠΎΡΠ½ΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ Π½Π° ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π΄Π°ΡΠ΅ / Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΡΠ°Π½Π΅Π΅ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ
Π΄Π°Π½Π½ΡΡ
, Π° Π·Π½Π°ΡΠΈΡ, Π½Π°ΠΌ Π½Π΅ ΡΡΠΎΠΈΡ ΠΎΡΠ½ΠΎΡΠΈΡΡ Π΅Π³ΠΎ ΠΊ ΡΡΠΎΠ²Π½Ρ Π΄ΠΎΠΌΠ΅Π½Π°. ΠΠ»ΡΡ ΠΊΠΎ Π²ΡΠ΅ΠΌΡ ΡΡΡΠ½ΠΎΡΡΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π½Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎ ΡΠ΅Π±Π΅ ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΌΠΎΡΡΠ΅ΡΡ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ ΡΠ²ΠΎΠΈΡ
Π³ΡΠ°Π½ΠΈΡ, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ, Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π»ΠΈ id ΡΠ½ΠΈΠΊΠ°Π»Π΅Π½ (Π° ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ
ΠΏΡΠΎΠ±Π»Π΅ΠΌ). ΠΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΡΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π²Π½Π΅ ΡΡΡΠ½ΠΎΡΡΠΈ.
β ΠΡΠ»ΠΈΡΠ½ΠΎ, Π²ΡΠ½ΠΎΡΠΈΠΌ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ, Π½Π° ΡΡΠΎΠ²Π΅Π½Ρ Application, Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π½Π΅ΠΏΠ»ΠΎΡ
ΠΎ. ΠΠΎ Π΅ΡΡΡ ΠΎΡΡΡΠ΅Π½ΠΈΠ΅, ΡΡΠΎ ΡΡΠΎ-ΡΠΎ Π½Π΅ ΡΠ°ΠΊ. ΠΠΎΠ΄ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΡΡ, ΠΊ ΡΠΎΠΌΡ ΠΆΠ΅ Π»Π΅ΠΆΠΈΡ ΠΎΠ½ Π·Π΄Π΅ΡΡ ΠΊΠ°ΠΊ-ΡΠΎ Π½Π΅Π»ΠΎΠ³ΠΈΡΠ½ΠΎ.
π Π§ΡΠΎΠ±Ρ Π½Π΅ ΡΠ°Π·Π±ΡΠ°ΡΡΠ²Π°ΡΡ ΠΏΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΡ ΠΊΠΎΠ΄ ΡΠ°ΠΌΠΎΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ - Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ½Π΅ΡΡΠΈ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΡΡΡΠ½ΠΎΡΡΠΈ.
Π‘ΡΠ°Π·Ρ ΠΏΠΎΠ»ΡΡΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²:
1. ΠΠΎΠ½ΡΠ΅ΠΏΡΡΠ°Π»ΡΠ½ΠΎ Π»ΠΎΠ³ΠΈΡΠ½ΠΎ: Π Π΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΡΠ½ΠΎΡΡΡΠΌΠΈ ΠΈ ΠΈΡ
id.
2. Π ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ - Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ΄ΠΌΠ΅Π½ΠΈΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Ρ.ΠΊ. ΠΊΠΎΠ΄ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅.
3. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π°ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ½ΡΠ΅ id, Π΅ΡΠ»ΠΈ ΠΠ ΠΏΠΎΠ΄Π΄ΡΠ΅ΠΆΠΈΠ²Π°Π΅Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ (sequences, Π½Π°ΠΏΡ. postgresql).
4. ΠΡΡ Π½Π° ΡΠ²ΠΎΠΈΡ
ΠΌΠ΅ΡΡΠ°Ρ
, ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ ΡΡΡΠ½ΠΎΡΡΡ Π² Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅, uuid Π² ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΡΠΌ ΠΎΡ Π΄Π°ΡΡ / Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ
Π΄Π°Π½Π½ΡΡ
ΡΡΡΠΎΠΊΠ°ΠΌ.
#php #middle #advice #source3 746
ΠΠ°ΡΡΠΈΠ²Ρ (ΡΠ°ΡΡΡ 1, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΠΊΠ°ΠΊ ΡΠΏΠΈΡΠΊΠΎΠ²)
ΠΠ°ΠΊ Π±Ρ ΠΌΡ Π½Π΅ Ρ
ΠΎΡΠ΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΡΡΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π°, Π΄Π° ΠΈ ΡΠ°ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠ²Π»ΡΡΡΡΡ ΠΎΠ²Π΅ΡΠΈΠ½ΠΆΠ΅Π½ΠΈΡΠΈΠ½Π³ΠΎΠΌ. ΠΠ° ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠΈΡ
ΠΎΠ΄ΡΡ Π»ΡΠ±ΠΈΠΌΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ. ΠΠΎΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π² Π²ΠΈΠ΄Π΅ ΡΠΏΠΈΡΠΊΠΎΠ²:
βοΈΠΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°
@var array <TypeOfElement>.
ΠΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π²Π½ΡΡΡΠΈ ΡΠΏΠΈΡΠΊΠΎΠ², ΡΠ°ΠΊ ΠΈ ΠΏΡΠΎΡΡΡΡ
ΡΠΈΠΏΠΎΠ² (int, string ΠΈ Ρ.Π΄.).
βοΈΠ‘ΡΠ°ΡΠ°ΠΉΡΠ΅ΡΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ Π²Π°ΡΠ΅Π³ΠΎ ΡΠΏΠΈΡΠΊΠ°.
ΠΠ΅ ΡΡΠΎΠΈΡ ΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ PHP ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ
Π½Π°ΠΏΡΡΠΌΡΡ. ΠΠ°ΠΌ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΌΠ°ΡΡΠΈΠ² ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ (foreach) ΠΈ Π΅Π³ΠΎ ΠΊΠΎΠ»-Π²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡΠΈΡΠ°ΡΡ (count()). Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ Π½ΡΠΆΠ½ΠΎ ΡΡΠ°ΡΠ°ΡΡΡΡ ΠΈΠ·Π±Π΅Π³Π°ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ for.
βοΈΠΠΌΠ΅ΡΡΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΈΠ»ΡΡΡ.
ΠΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π²ΡΡΠ΅ΠΊΠ°Π΅Ρ ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° ΠΏΠΎ ΠΈΡ
ΠΈΠ½Π΄Π΅ΠΊΡΡ (unset()), Π½ΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ array_filter() Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ° Π±Π΅Π· Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΡΡ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². Π’Π°ΠΊΠΆΠ΅ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π°Π³ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²Π½ΡΡΡΠΈ array_filter() ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΠΌΠΈ.
ΠΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²Π°ΠΌ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ Π»ΠΈΡΠ½ΠΈΡ
if, ΠΏΠΎΠ²ΡΡΡΡ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½ΠΎΡΡΡ ΠΈ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎΡΡΡ, Π° ΡΡΠΎ Π½Π°ΠΌ Π΅ΡΠ΅ Π½Π°Π΄ΠΎ ΡΠΎ? :)
#php #array #junior #source3 746
ΠΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± Π³ΠΎΡΠΎΠ²ΠΈΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ) Π² PHP, ΡΠΎ Π²ΠΎΡ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠΉ Π»Π°ΠΉΡΡ
Π°ΠΊ.
βοΈΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ Π²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°
Iterator (next(), current(), key() ΠΈ Ρ. Π΄.), Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ IteratorAggregate Ρ ΠΎΠ΄Π½ΠΈΠΌ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ getIterator(), ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²Π΅ΡΠ½ΡΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ArrayIterator Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π²Π°ΡΠ΅Π³ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°.
Π‘Π»ΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΡΡΠ½ΠΈΠ», Π½ΠΎ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΠ΅ ;)
#PHP #junior #advice #source