ΠΠ°ΠΌΠ΅ΡΠΊΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°
Open in Telegram
ΠΠ°ΠΌΠ΅ΡΠΊΠΈ ΠΎ Frontend, Backend ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ DevOps. Π ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΎ #PHP, #Laravel, #JavaScript, #HTML, #CSS, ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ². https://www.dev-notes.ru @snakenf
Show more463
Subscribers
No data24 hours
-37 days
+130 days
Posts Archive
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΎΠΉ Π΄Π»Ρ ΡΡ
Π΅ΠΌ Π±Π°Π· Π΄Π°Π½Π½ΡΡ
ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° Π΄Π»Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² URL-Π°Π΄ΡΠ΅ΡΠ°Ρ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΡΡΠ½ΡΡ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ Π²ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ Π·Π°ΠΏΠΈΡΠΈ. ΠΡΠΎΡ Π²Π΅ΠΊΡΠΎΡ Π°ΡΠ°ΠΊΠΈ ΡΠ°ΡΡΠΎ ΡΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΈΠ· Π²ΠΈΠ΄Ρ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ Π² ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ
. ΠΠ΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°ΡΡΠΈΡΠΈΡΡ ΠΊΠ°ΠΆΠ΄ΡΡ ΡΠ°Π±Π»ΠΈΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌ ΡΡΠΎΠ»Π±ΡΠΎΠΌ UUID v4, Π·Π°ΠΌΠ΅Π½ΠΈΠ² ΠΈΠΌ ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π² URL.
https://www.dev-notes.ru/articles/database/uuid-prevent-enumeration-attack/
Repost from Π‘Π΅ΡΠ³Π΅ΠΉ ΠΡΠ΅Π΄Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅Π²
π ΠΠ²ΡΠΎΡΡΠΊΠΈΠ΅ ΡΠ΅Π»Π΅Π³ΡΠ°ΠΌ-ΠΊΠ°Π½Π°Π»Ρ ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΈ IT Π² ΡΠ΅Π»ΠΎΠΌ
Π‘Π΅ΠΉΡΠ°Ρ Π²ΡΠ΅ΠΌΡ, ΠΊΠΎΠ³Π΄Π° Π½Π° Π½Π°Ρ Π»ΡΡΡΡΡ ΠΎΠ³ΡΠΎΠΌΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. ΠΠΎΠΌΠΏΠ°Π½ΠΈΠΉ Π±ΠΎΡΡΡΡΡ Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π»ΡΠ΄Π΅ΠΉ. Π ΡΡΡ Π΅ΡΡ ΡΠ°ΠΊ ΡΠ΄Π°ΡΠ½ΠΎ ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠ²Π½ΡΠ΅ ΠΠ. Π ΠΊΠ°ΠΊ ΠΈΡΠΎΠ³ β ΠΊΡΡΠ° Π½Π΅ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π±Π΅Π·Π΄ΡΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°.
ΠΡΡΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΡΠΊΠ°ΡΡ ΠΆΠΈΠ²ΡΠ΅ Π°Π²ΡΠΎΡΡΠΊΠΈΠ΅ ΠΊΠ°Π½Π°Π»Ρ, Π³Π΄Π΅ Π»ΡΠ΄ΠΈ ΠΏΠΎΠΊΠ° Π΅ΡΡ ΠΏΠΈΡΡΡ ΡΡΠΎ-ΡΠΎ ΠΎΡ ΡΠ΅Π±Ρ ΠΈ Π΄Π΅Π»ΡΡΡΡ ΡΠ²ΠΎΠΈΠΌ ΠΎΠΏΡΡΠΎΠΌ.
ΠΠ° Π΄Π½ΡΡ
ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠ» ΡΠΎΠ·ΡΠ³ΡΡΡ Π±ΠΈΠ»Π΅ΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΡ, Π³Π΄Π΅ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΎΠ± Π°Π²ΡΠΎΡΡΠΊΠΈΡ
ΡΠ΅Π»Π΅Π³ΡΠ°ΠΌ-ΠΊΠ°Π½Π°Π»Π°Ρ
. ΠΡΠΈΡΠ»Π°Π»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»ΠΎΠ², ΠΎΡΠΎΠ±ΡΠ°Π» Π°ΠΉΡΠΈΡΠ½ΡΠ΅. Π ΠΌΠ½ΠΎΠ³ΠΈΡ
ΡΠ°Π½Π΅Π΅ Π½Π΅ ΡΠ»ΡΡΠ°Π».
β’ ΠΠΈΠ΄ΠΆΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΡΠΉ! β ΠΠ»Π΅ΠΊΡΠ΅ΠΉ ΠΠΎΠ»ΠΎΠ±ΡΡΠ΄ΠΈΠ½
β’ PHP Fart Time β ΠΠ»Π΅ΠΊΡΠ΅ΠΉ ΠΠ°Π³Π°ΡΠΈΠ½ ΠΈ ΠΠ°Π²Π΅Π» ΠΡΡΠ½Π΅Π²
β’ ΠΠ°Π»Π΅ΡΠ° ΠΠΎΡΠ΅Π²Π° β ΠΠ½ΡΠΎΠ½ ΠΠΎΡΠ΅Π²
β’ ΠΠ«Π₯ ΠΈ PHP ΡΠΌΠΈΡΠ°Π΅Ρ?! β ΠΠ°Π»Π΅Π½ΡΠΈΠ½ Π£Π΄Π°Π»ΡΡΠΎΠ²
β’ ΠΡΡΠΈΠΌΠΈΠ½ΡΡΠΊΠ° PHP β ΠΡΡΡ ΠΡΠ·ΠΈΠ½
β’ adelf on programming β ΠΠ΄Π΅Π»Ρ Π€Π°ΠΉΠ·ΡΠ°Ρ
ΠΌΠ°Π½ΠΎΠ²
β’ ebanoePHP β ΠΡΡΡΡ ΠΠ°Π½ΡΠ΅Π»Π΅Π΅Π²
β’ SOER β ΠΠ²Π³Π΅Π½ΠΈΠΉ Π‘Π΅ΡΠ³Π΅Π΅Π²
β’ igancev.ru ΠΈ phpinfo(); β ΠΠ²Π°Π½ ΠΠ°Π½ΡΠ΅Π²
β’ ArturKryukov video β ΠΡΡΡΡ ΠΡΡΠΊΠΎΠ²
β’ emacsway-log β ΠΠ²Π°Π½ ΠΠ°ΠΊΡΠ΅Π²ΡΠΊΠΈΠΉ
β’ Evgeniy Kuvshinov β ΠΠ²Π³Π΅Π½ΠΈΠΉ ΠΡΠ²ΡΠΈΠ½ΠΎΠ²
β’ ElisDN.ru β ΠΠΌΠΈΡΡΠΈΠΉ ΠΠ»ΠΈΡΠ΅Π΅Π²
β’ samdark blog β ΠΠ»Π΅ΠΊΡΠ°Π½Π΄Ρ ΠΠ°ΠΊΠ°ΡΠΎΠ²
β’ dependency hell β ΠΠ½ΡΠΎΠ½ ΠΡΡΠ΅ΡΠΎΠ²
β’ Tolstoy Live β ΠΠ³ΠΎΡ Π’ΠΎΠ»ΡΡΠΎΠΉ
β’ johenews β ΠΠΌΠΈΡΡΠΈΠΉ ΠΠΎΠ²Π°Π»ΡΠ²
β’ ΠΠ°ΡΡΡΠΈΠΊ.ΠΡΠ½Ρ β ΠΠ°ΡΠΈΠ»ΠΈΠΉ ΠΡΠ±Π°ΡΠ΅Π²
β’ Beer::PHP β ΠΠΈΡΠΈΠ»Π» Π‘ΡΠ»ΠΈΠΌΠΎΠ²ΡΠΊΠΈΠΉ
β’ agoalofalife β ΠΠ»ΡΡ Π§ΡΠ±Π°ΡΠΎΠ²
β’ Alek OS β ΠΠ»Π΅ΠΊΡΠ°Π½Π΄Ρ ΠΡΠ°Π΄ΠΈΠ½
β’ ΠΠ°ΠΌΠ΅ΡΠΊΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° β ΠΠ»Π΅ΠΊΡΠ΅ΠΉ ΠΠΎΡΠΊΡΡΠΎΠ²
β’ Π‘Π°ΡΠΎΠΊ ΠΠΎΡΡΠΎΠΊ (DEV & MGMT) β ΠΠ»Π΅ΠΊΡΠ°Π½Π΄Ρ Π―ΠΊΠΎΠ²Π»Π΅Π²
ΠΠΎΠΉ ΠΊΠ°Π½Π°Π» ΡΠΎΠΆΠ΅ ΡΠΏΠΎΠΌΡΠ½ΡΠ»ΠΈ β Π‘Π΅ΡΠ³Π΅ΠΉ ΠΡΠ΅Π΄Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅Π², ΡΠ°ΠΊΠ°Ρ Π²ΠΎΡ ΡΠ΅ΠΊΡΡΡΠΈΡ π
β€ Π Π΅ΠΏΠΎΡΡ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΡΠ΅ΡΡΡ.
PHP ΠΈΡΠ΅ΡΠ°ΡΠΎΡΡ ΡΠ²Π»ΡΡΡΡΡ Π²Π°ΠΆΠ½Π΅ΠΉΡΠΈΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ Π΄Π»Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΎΠ±Ρ
ΠΎΠ΄Π° ΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΡΠΊΡΡΡΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ
, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ ΠΌΠ°ΡΡΠΈΠ²Ρ, ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈ Ρ.Π΄. ΠΠ½ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΡΠΈΡΡΡΠΉ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ°Π±ΠΎΡΡ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ
Π±Π΅Π· ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π²ΡΠ΅Π³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° Π² ΠΏΠ°ΠΌΡΡΡ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ PHP ΠΈΡΠ΅ΡΠ°ΡΠΎΡΡ ΠΈ ΠΈΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π»Ρ ΠΎΠ±Ρ
ΠΎΠ΄Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΡΡΡΠΊΡΡΡ Π΄Π°Π½Π½ΡΡ
.
https://www.dev-notes.ru/articles/php/php-iterators-for-walking-through-data-structures/
ΠΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π΄Ρ Laravel ΠΏΠΎΠ΄ Windows, ΡΠ°ΠΊΠΈΠ΅, ΠΊΠ°ΠΊ Vagrant/Homestead, Laravel Sail ΠΈΠ»ΠΈ Laragon, ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΡΠ΅Π½Ρ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΌΠΈ ΠΈΠ»ΠΈ ΡΠ΅ΡΡΡΡΠΎΡΠΌΠΊΠΈΠΌΠΈ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π±ΠΎΠ»Π΅Π΅ Π½Π°ΡΠΈΠ²Π½ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΎΡΠ΅Π½Ρ Ρ
ΠΎΡΠΎΡΠΎ! ΠΠ°ΠΌ ΡΠ΄Π°Π»ΠΎΡΡ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ»ΠΎΠΆΠ½ΡΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Ρ 13 Ρ. Π΄ΠΎ 1,5 Ρ., ΡΡΠΎ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠΈΡΠΎΡΡ ΠΎΠΊΠΎΠ»ΠΎ 800%!
https://www.dev-notes.ru/articles/devops/how-to-setup-a-real-fast-local-laravel-development-environment-for-windows/
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ
declare(strict_types=1), ΠΊΠΎΠ³Π΄Π° PHP ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΡΡΠΎΠΈΡ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, Π° ΠΊΠΎΠ³Π΄Π° Π½Π΅Ρ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄ΡΠΌ ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΡΡΠΈΠ΅ Π΅Π³ΠΎ Π²Π°ΠΆΠ½ΠΎΡΡΡ.
Π’Π°ΠΊΠ°Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΎΠ±ΡΡΠ»ΠΎΠ²Π»Π΅Π½Π° ΡΠ»Π°Π±ΠΎ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΡΠΈΡΠΎΠ΄ΠΎΠΉ PHP ΠΈ ΡΠ°ΡΡΡΡΠΈΠΌ ΡΠΏΡΠΎΡΠΎΠΌ Π½Π° ΡΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΡΡΠ²Π»ΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ ΡΠ·ΡΠΊΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Java.
ΠΠ±Π΅ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ (ΡΠ»Π°Π±Π°Ρ ΠΈ ΡΡΡΠΎΠ³Π°Ρ) ΠΈΠΌΠ΅ΡΡ ΡΠ²ΠΎΠΈ ΠΏΠ»ΡΡΡ ΠΈ ΠΌΠΈΠ½ΡΡΡ, ΠΏΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ°Π·Π±Π΅ΡΡΠΌΡΡ Π² ΠΈΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΠΈ.
https://www.dev-notes.ru/articles/php/why-use-declarestrict-types-1-in-php/Π― Π½Π°ΠΏΠΈΡΠ°Π» A Modern CSS Reset ΠΏΠΎΡΡΠΈ 4 Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄, ΠΈ, Π΄Π°, ΠΎΠ½ Π½Π΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ Ρ
ΠΎΡΠΎΡΠΎ ΡΠΎΡ
ΡΠ°Π½ΠΈΠ»ΡΡ. ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π½Π΅ΠΉ Π½Π°Π·Π°Π΄ Ρ Π·Π°ΠΌΠ΅ΡΠΈΠ», ΡΡΠΎ Π½Π° Π½Π΅Π³ΠΎ ΡΠ½ΠΎΠ²Π° ΡΡΡΠ»Π°ΡΡΡΡ, ΠΈ ΠΏΠΎΠ΄ΡΠΌΠ°Π», ΡΡΠΎ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΡΡΠΎ Ρ
ΠΎΡΠΎΡΠ°Ρ ΠΈΠ΄Π΅Ρ β ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ½Π½ΡΡ Π²Π΅ΡΡΠΈΡ.
Π― Π·Π½Π°Ρ, ΡΡΠΎ Ρ ΠΌΠ΅Π½Ρ ΡΠΆΠ°ΡΠ½ΡΠΉ ΠΏΠΎΡΠ»ΡΠΆΠ½ΠΎΠΉ ΡΠΏΠΈΡΠΎΠΊ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΡ open source. ΠΠΎΡΡΠΎΠΌΡ Ρ ΡΠ΅ΡΠΈΠ» Π·Π°Π°ΡΡ
ΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π» ΠΈ ΠΏΡΠΎΡΡΠΎ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ ΡΡΠΎ Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅Π³ΠΎ. ΠΠ΅Π»Π°ΠΉΡΠ΅ Ρ Π½ΠΈΠΌ ΡΡΠΎ Ρ
ΠΎΡΠΈΡΠ΅!
Π§ΡΠΎΠ±Ρ Π±ΡΡΡ ΠΏΡΠ΅Π΄Π΅Π»ΡΠ½ΠΎ ΡΡΠ½ΡΠΌ, ΡΡΠΎ ΡΠ±ΡΠΎΡ CSS, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄Π»Ρ ΠΌΠ΅Π½Ρ ΠΈ Π΄Π»Ρ Π½Π°Ρ Π² Set Studio. ΠΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Ρ Π³ΠΎΠ²ΠΎΡΡ "ΠΌΡ", Ρ ΠΈΠΌΠ΅Ρ Π² Π²ΠΈΠ΄Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π°Ρ.
https://www.dev-notes.ru/articles/css/a-more-modern-css-reset/
Π Laravel Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ ΡΠΎΡΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠΌ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΈ ΡΠΎΡΠ½ΠΎΡΡΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ
Π΄Π°Π½Π½ΡΡ
. ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ
FormRequest ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΡΡ Π·Π°Π΄Π°ΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΡΠ°Π²ΠΈΠ»Π° Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΈ Ρ
ΡΠ°Π½ΡΡΡΡ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅, Π° Π½Π΅ Π² ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ΅. ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ Π΄Π΅Π»Π°Π΅Ρ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ Π°ΠΊΠΊΡΡΠ°ΡΠ½ΡΠΌ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π·Π°ΠΏΡΠΎΡΠΎΠΌ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° Π΄Π°Π½Π½ΡΡ
Π² ΠΏΠΎΠ»Π΅.
https://www.dev-notes.ru/articles/laravel/form-requests-deep-dive/ΠΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Composer ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄Π΅-ΡΠ°ΠΊΡΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌΠΈ Π² PHP-ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ
. ΠΡΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ PHP-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π΅ΠΌΡΡΠ»ΠΈΠΌΠ° Π±Π΅Π· Composer. ΠΠΎ Π·Π½Π°Π΅ΡΠ΅ Π»ΠΈ Π²Ρ, ΡΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Composer ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠ΅, ΠΊΡΠΎΠΌΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ?
ΠΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊ! Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Ρ ΡΠ°ΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Composer, ΠΎ ΠΊΠΎΡΠΎΡΡΡ
Π²Ρ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π΅ Π·Π½Π°Π»ΠΈ. Π ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΌΠΎΡΡ ΡΠ»ΡΡΡΠΈΡΡ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π² Composer.
https://www.dev-notes.ru/articles/php/lesser-known-composer-tricks-tips/
Frontend-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ³ΡΠ°ΡΡ ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΡΡ ΡΠΎΠ»Ρ Π² ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠΈ Π±Π΅ΡΠΏΠ΅ΡΠ΅Π±ΠΎΠΉΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. Π ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·Π°Π½Π½ΠΎΠΉ ΡΠ΅ΡΠΈ, Π³Π΄Π΅ ΡΠΈΡΠΎΠΊΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Ρ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ ΠΈ API, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π°Π΄ΡΠΆΠ½ΠΎΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΈΠΌΠ΅Π΅Ρ ΠΏΠ΅ΡΠ²ΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΠ°ΡΡΡΠ΅Π½ΠΈΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΊΡΠ°ΠΆΠ΅ Π΄Π°Π½Π½ΡΡ
, Π½Π΅ΡΠ°Π½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌΡ Π΄ΠΎΡΡΡΠΏΡ ΠΈ ΡΡ
ΡΠ΄ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΏΡΡΠ°ΡΠΈΠΈ Π±ΡΠ΅Π½Π΄Π°. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΊΠ°ΠΆΠ΅ΠΌ Π²Π°ΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ CORS ΠΈ CSP Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π²Π°ΡΠΈΡ
Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡ.
ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΡΡΠΎ Π² Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Π½Π΅Π΄ΡΡΠ½ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΠΉ ΡΠΊΡΠΈΠΏΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΡ
ΠΈΡΠ°Π΅Ρ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΡ
Π½Π° ΠΌΠΎΡΠ΅Π½Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ°ΠΉΡΡ. Π‘ΡΡΠ°ΡΠ½ΠΎ, ΠΏΡΠ°Π²Π΄Π°? ΠΠΎ Π½Π΅ ΡΡΠΎΠΈΡ Π±ΠΎΡΡΡΡΡ! ΠΡΠ°Π²ΠΈΠ»ΡΠ½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ CORS ΠΈ CSP ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°ΡΠΈΡΠΈΡΡ Π½Π°ΡΠΈ frontend ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΎΠΏΠ΅ΡΠ΅Π΄ΠΈΡΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠ³ΡΠΎΠ·Ρ.
https://www.dev-notes.ru/articles/security/securing-front-end-apps-with-cors-and-csp/
ΠΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΡΠΉΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΡΠΏΠ»ΠΈΡΠΎΠ² Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π½ΡΠΆΠ½ΠΎΠΉ ΠΏΠ»ΠΎΡΠ°Π΄ΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ°.
Π£ΡΡΠ°Π»ΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡ ΡΠΏΠ»ΠΈΡΠΎΠ² Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Ρ ΠΆΠ΅Π»Π°Π΅ΠΌΡΠΌΠΈ? ΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠΌΠΎΡΡ ΡΠΏΠ»ΠΈΡΠΎΠ² ΠΈΠ»ΠΈ ΡΠΏΠΈΡΠΎΠΊ Π±ΡΡΡΡΡΡ
ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΉ Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Ρ
ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ? Π Π°Π·Π΄ΡΠ°ΠΆΠ°ΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠ΅ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΏΠ»ΠΈΡΠ°? ΠΡΠΆΠ½ΠΎ Π΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ Π² ΠΎΠΊΠ½Π΅ :Git, ΡΡΠΎΠ±Ρ Π±ΡΠ»ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, Π½Π° ΡΡΠΎ ΡΠΌΠΎΡΡΠ΅ΡΡ? Π Vim ΠΌΠ΅Π½Ρ ΡΡΠΎ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠ°Π·Π΄ΡΠ°ΠΆΠ°Π»ΠΎ. Π ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΡ
Π»Π΅Ρ Ρ ΡΠ°Π·ΠΎΡΠ°ΡΠΎΠ²Π°Π½Π½ΠΎ ΠΌΠΈΡΠΈΠ»ΡΡ Ρ ΡΡΠΈΠΌ.
https://www.dev-notes.ru/articles/vim/resize-splits/
ΠΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ SQL ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΎΡΠ΅Π½Ρ Π½ΡΠΆΠ½Ρ Π·Π°Π²ΠΈΡΠΈΠΌΡΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠΈΠ΅ Π»ΠΈΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄Π°Π½Π½ΡΡ
ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ½Π½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ
LATERAL ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π·Π½Π°ΠΊΠΎΠΌΡΠΉ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠΊΠ» ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄ΡΠ½ Π² SQL.
ΠΡΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΡΠ°Π±Π»ΠΈΡ ΡΡΡΠΎΠΊΠΈ ΠΎΠ±Π΅ΠΈΡ
ΡΠ°Π±Π»ΠΈΡ ΡΠ²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΡΠ»ΠΎΠ²ΠΈΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ Π΅ΡΠ»ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ΅ΠΌΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌΠΈ ΠΊΡΠΏΠ»Π΅Π½Π½ΡΠΌΠΈ ΡΠΎΠ²Π°ΡΠ°ΠΌΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Ρ, ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ: ΠΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ½Π½Π°Ρ ΡΠ°Π±Π»ΠΈΡΠ° ΠΊΡΠΏΠ»Π΅Π½Π½ΡΡ
ΡΠΎΠ²Π°ΡΠΎΠ² Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π° ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ΅ΠΌΡ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Ρ. Π’Π°ΠΊ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅, Π² Π½Π΅Π³ΠΎ Π²ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π²ΡΠ΅ ΡΡΡΠΎΠΊΠΈ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΊΡΠΈΡΠ΅ΡΠΈΡΠΌ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ. ΠΠΎ ΠΏΡΠΈ Π»Π°ΡΠ΅ΡΠ°Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΡΠ°Π±Π»ΠΈΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ½ ΠΏΠΎΠ΄Π·Π°ΠΏΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Ρ, ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎΠΌΡ ΡΠΈΠΊΠ»Ρ for-each Π² SQL.
https://www.dev-notes.ru/articles/database/for-each-loop-lateral-join/Π Laravel ΡΠ°Π±ΡΠΈΠΊΠΈ ΠΈΠ³ΡΠ°ΡΡ Π²Π°ΠΆΠ½ΡΡ ΡΠΎΠ»Ρ Π² Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ
Π΄Π»Ρ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ.
https://www.dev-notes.ru/articles/eloquent/factory-relations-deep-dive/
Π’ΠΈΠΏ null ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅Π΄ΠΈΠ½ΠΈΡΠ½ΡΠΌ ΡΠΈΠΏΠΎΠΌ PHP, Ρ.Π΅. ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅: null. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π²ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΡΠ°Π±ΠΎΡΡ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ null Π² PHP.
https://www.dev-notes.ru/articles/php/all-the-ways-to-handle-null-values/
ΠΡΠ»ΠΈ Π²Ρ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠ°Π»ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ
UUID, ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ Π½Π΅ΠΌΠ°Π»ΠΎ Π²ΠΎΠΏΡΠΎΡΠΎΠ² ΠΎ Π½ΠΈΡ
. ΠΡ ΠΏΠΎΡΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΎΡΠ²Π΅ΡΠΈΡΡ Π½Π° Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΠ΅ ΠΈΠ· Π½ΠΈΡ
.
https://www.dev-notes.ru/articles/laravel/uuid-in-laravel-common-questions/Π§Π΅ΡΠ΅Π· Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ, ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΡ
ΡΠ΄ΡΠ΅Π½ΠΈΡ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
ΠΈ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
. ΠΡΠΎΡΠ΅ΡΡ ΠΎΡΠΈΡΡΠΊΠΈ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ Π² ΠΊΠΎΠ΄Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΄Π°Π½Π½ΡΠ΅ Π½Π΅ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ Π² ΠΏΠ°ΠΌΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΠ΄ΠΈΠ½ SQL-Π·Π°ΠΏΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π²Π΅ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠ² ΡΡΡΠΎΠΊ ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π΄ΡΠ±Π»ΠΈΠΊΠ°ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΡΠ°Π²ΠΈΡΡ.
https://www.dev-notes.ru/articles/database/delete-duplicate-rows/
TypeScript ΠΎΡΠ½ΠΎΠ²ΡΠ²Π°Π΅Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² Π½Π° Π²ΡΠ²Π΅Π΄Π΅Π½ΠΈΠΈ ΡΠΈΠΏΠΎΠ² (Type Inferences) ΠΈ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡΡ
ΡΠΈΠΏΠΎΠ² (Type Annotations), ΠΈ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΊΠ°ΠΆΠ΅ΠΌ ΠΎ Π½ΠΈΡ
, ΡΡΠΎΠ±Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΈ ΠΊΠ°ΠΊ ΠΈΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ.
ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΎΡΠ»ΠΈΡΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ TypeScript ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΎΠ½ β ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ·ΡΠΊ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΡΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΡΠ½Π΅ΡΠ΅Π½Ρ ΠΊ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΡΠΈΠΏΠ°ΠΌ Π΄Π°Π½Π½ΡΡ
, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΡΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° JavaScript, Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ
β ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΠΈΡ
ΡΠΈΠΏΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ·ΡΠΊΠΎΠ² Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, ΡΡΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ ΡΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠ°Π·Ρ Π²ΠΈΠ΄Π½ΠΎ, Π΅ΡΡΡ Π»ΠΈ Π² ΠΊΠΎΠ΄Π΅ Π½Π΅ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² ΠΈΠ»ΠΈ Π²Ρ ΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ Π²ΡΠ·Π²Π°ΡΡ Π½Π΅ΡΡΡΠ΅ΡΡΠ²ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ. ΠΡΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΡΠ·ΡΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΠΎΡΠΈΠ±ΠΎΠΊ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
Π TypeScript ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Ρ ΠΊ ΡΠΈΠΏΠ°ΠΌ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΡΡ
ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ². Π TypeScript ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π° ΠΎΡΠ½ΠΎΠ²Π½ΡΡ
ΡΠΏΠΎΡΠΎΠ±Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΈΠΏΠΎΠ²: Π²ΡΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² (Type Inference) ΠΈ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ ΡΠΈΠΏΠΎΠ² (Type Annotations). Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅ ΠΎΠ± Π°Π½Π½ΠΎΡΠ°ΡΠΈΡΡ
ΡΠΈΠΏΠΎΠ² ΠΈ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ², ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΠΈ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΈΡ
ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠ³ΡΡΠ·ΠΈΠΌΡΡ Π² ΡΠ΅ΠΌΡ.
https://www.dev-notes.ru/articles/typescript/type-inferences-and-annotations/
ΠΡΠ³ΠΊΠΎΠ΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² Laravel ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ Π·Π°ΠΏΠΈΡΠΈ ΠΊΠ°ΠΊ "ΡΠ΄Π°Π»ΡΠ½Π½ΡΠ΅", Π° Π½Π΅ ΡΠ΄Π°Π»ΡΡΡ ΠΈΡ
ΠΈΠ· Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
Π½Π°Π²ΡΠ΅Π³Π΄Π°. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΡ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ. Π ΡΡΠ°ΡΡΡΡ, Laravel ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ soft delete!
Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ soft delete Π² Laravel Eloquent, Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π² ΠΌΠΎΠ΄Π΅Π»Ρ ΡΡΠ΅ΠΉΡ
SoftDeletes, ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ Ρ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΎΠΉ deleted_at ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ ->delete() Π΄Π»Ρ ΠΏΠΎΠΌΠ΅ΡΠΊΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΊΠ°ΠΊ ΡΠ΄Π°Π»ΡΠ½Π½ΡΡ
Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΈΡ
Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ
.
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Laravel.
https://www.dev-notes.ru/articles/eloquent/how-to-soft-delete/ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡΡ Π² PHP ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΡ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²ΡΠ΅Π³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ.
https://www.dev-notes.ru/articles/php/generators-in-php/
Laravel ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ ΠΈΠ· Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°ΡΠ°Π΄Π° Mail. ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΏΠΎΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ SMTP-ΡΠ΅ΡΠ²Π΅ΡΠ° Gmail, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅.
Π§ΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΠ΅ ΠΏΠΈΡΡΠΌΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Gmail Π² Laravel, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΡΡΡΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Gmail ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΡΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Gmail SMTP Π² ΡΠ°ΠΉΠ» Laravel .env. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ Π² Laravel ΡΠ°ΡΠ°Π΄ Mail Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΏΠΈΡΠ΅ΠΌ Π² ΡΠ²ΠΎΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
Π Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ Π² ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΡΡ
.
https://www.dev-notes.ru/articles/laravel/how-to-send-email-using-gmail/
Π Laravel ΠΎΡΠ΅Π½Ρ ΠΌΠΎΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π·Π°ΠΏΡΠΎΡΠΎΠ². ΠΠ½ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π±ΠΎΠ³Π°ΡΡΠΉ Π½Π°Π±ΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΡ
Π»Π΅Π³ΠΊΠΎ ΠΈ ΠΏΡΠΎΡΡΠΎ ΠΏΠΈΡΠ°ΡΡ SQL-Π·Π°ΠΏΡΠΎΡΡ.
ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°ΠΊΠΈΡ
ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄
Where, ΠΈ ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΡΠ»ΠΎΠΆΠ½ΡΡ
Π·Π°ΠΏΡΠΎΡΠΎΠ².
ΠΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ where β ΠΏΡΠΎΡΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ·Π²Π°ΡΡ Π΅Π³ΠΎ Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊΠ°ΠΊ Model::where('name', 'Ahmed')->first().
https://www.dev-notes.ru/articles/eloquent/query-builder-where/