Заметки разработчика
471 subscribers
668 photos
4 videos
1.16K links
Заметки о Frontend, Backend и немного DevOps. В основном о #PHP, #Laravel, #JavaScript, #HTML, #CSS, тестировании и настройке серверов.

https://www.dev-notes.ru

@snakenf
Download Telegram
💡 Совет по Laravel: Условная валидация

Вам когда-нибудь требовалось применить правило валидации только в определенных случаях? Например, отклонять купоны на скидку для определенных тарифных планов. Хотя это можно реализовать вручную, но можно воспользоваться методом sometimes, позволяющим сделать именно это 🚀.

📱 @dev_notes_ru

#Laravel #Validation #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 PHP оператор Pipe `|>` возвращается в новом RFC

Оператор |>, или "pipe", принимает справа вызываемую переменную с одним параметром и передает ей значение слева, оценивая результат вызываемой переменной.

Оператор Pipe (|>) оценивает слева направо, передавая значение (или результат выражения) слева в качестве первого и единственного параметра в вызываемую переменную справа. То есть следующие два фрагмента кода логически эквивалентны:

$result = "Hello World" |> strlen(...);

$result = strlen("Hello World");


Для одиночного вызова это не особенно удобно. Pipe становится удобным, когда несколько вызовов соединяются в цепочку. То есть следующие два фрагмента кода фактически эквивалентны:

$result = "Hello World"
|> htmlentities(...)
|> str_split(...)
|> fn($x) => array_map(strtoupper(...), $x)
|> fn($x) => array_filter($x, fn($v) => $v != 'O');


$temp = "Hello World";
$temp = htmlentities($temp);
$temp = str_split($temp);
$temp = array_map(strtoupper(...), $temp);
$temp = array_filter($temp, fn($v) => $v != 'O');
$result = $temp;


🖥 PHP RFC: Pipe operator v3

📱 @dev_notes_ru

#PHP #Pipe #RFC
Please open Telegram to view this post
VIEW IN TELEGRAM
😱2🔥1👏1🤨1
💡 Совет по Laravel: Новый метод `incrementOrCreate`

В Laravel v11.39.1, появился новый метод incrementOrCreate. Позволяющий создать запись, если она не существует, или инкрементировать указанный столбец в противном случае 🚀.

📱 @dev_notes_ru

#Laravel #Model #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2🔥1
👩‍💻 В свежем релизе Laravel появилось несколько новых хелперов относительных дат.

📱 @dev_notes_ru

#Laravel #Helper #Date #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
👩‍💻 Простые тесты конечных точек с `Policy::fake`

Тестирование конечных точек может занять много времени, когда проверяется логика авторизации наряду с их поведением. Для конечных точек, закрытых сложными политиками, требуется много настроек только для запуска метода контроллера. Всё становится ещё менее приятным, когда меняется политика, и ломается куча не связанных с ней тестов. Это отстой. Тесты конечных точек должны отвечать на вопрос "Что это делает?", а не "Когда я могу это использовать?".

🖥 Читать статью

📱 @dev_notes_ru

#Laravel #Policy #Testing
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥1
💡 Совет по Laravel: Отслеживайте открытые соединения

А вы знали, что Laravel 9.24 и выше поставляется с командой db:monitor? Позволяющей следить за количеством открытых соединений и реагировать на превышение порога 🚀.

📱 @dev_notes_ru

#Laravel #Artisan #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
Когда смотришь на код, написанный в прошлом году.
- Зачем?
- Зачем?
- Зачем?
- О, вот зачем.

📱 @dev_notes_ru

#joke
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🤣1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🤣1
👩‍💻👩‍💻 Модернизация с Web-платформой: Производительность изображений

Демонстрация того, как современная Web-платформа может радикально упростить и обогатить старую кодовую базу.

Это первая часть серии статей о силе современной Web-платформы. Я написал каждую статью, основываясь на результатах проекта, созданного в 2018 году, а затем обновлённого в 2024 году.

🖥 Читать статью

📱 @dev_notes_ru

#Frontend #HTML #JavaScript #WebPlatform
Please open Telegram to view this post
VIEW IN TELEGRAM
1
💡 Совет по Laravel: Отключение привязки к области видимости

Laravel предполагает, что вложенные модели маршрутов связаны друг с другом, то есть он будет автоматически применять отношения parent-child. Можно отключить привязку к области видимости с помощью метода цепочки withoutScopeBindings 🚀.

📱 @dev_notes_ru

#Laravel #Route #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
💡 Новый метод withAttributes теперь можно использовать для отношений и локальных областей.

Этот метод добавляет в запрос условие where с заданными ограничениями атрибутов, а также применяет атрибуты к любым моделям, созданным через отношения или область применения. Супер удобно. 🔥

👩‍💻 Scoped Relationships

📱 @dev_notes_ru

#Laravel #Model #HasMany #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41
💡 Совет по Laravel: Настройка правил паролей по умолчанию

Laravel поставляется с правилами паролей по умолчанию, подходящими для большинства случаев использования. Однако если необходимо использовать определенные правила, не стоит отказываться от стандартных. Вместо этого измените их и храните все правила в одном месте 🚀.

📱 @dev_notes_ru

#Laravel #Validation #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
1
👩‍💻 Теперь CSS функция `attr()` поддерживает типы

CSS функция attr() позволяет извлечь значение атрибута выбранного HTML элемента и использовать его в качестве значения CSS свойства.

attr() обычно используется вместе со свойством content в псевдоэлементах для отображения значения атрибута на странице.

Функция attr() давно существует и широко используется в CSS. Однако она принимала только один аргумент: имя атрибута, значение которого требуется использовать.

Кроме того, значение, возвращаемое функцией attr(), всегда рассматривалось как строка, поэтому её можно было использовать только в свойствах, принимающих строковые значения. Например, свойство `content`, о котором говорилось ранее.

🖥 Читать статью

📱 @dev_notes_ru

#Frontend #CSS #Attr
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
💡 Используйте Gate Policy для защиты маршрутов по условиям

Вместо повсеместного использования операторов if Gate централизуют логику авторизации.

В чем преимущество?

Теперь только администраторы могут получить доступ к маршруту, обеспечивая постоянство безопасности.

Ограничьте доступ к маршруту, доступному только администраторам, с помощью Gate. 🚀.

📱 @dev_notes_ru

#Laravel #Gate #Policy #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
👩‍💻 Декодирование CSS селекторов: :has(:not) и :not(:has)

При комбинировании CSS функций вложенность функций имеет значение. В статье мы рассмотрим разницу между :has(:not) и :not(:has), а также то, как подходить к декодированию CSS селекторов, использующих эти вложенные CSS функции.

🖥 Читать статью

📱 @dev_notes_ru

#Frontend #CSS
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🔥 Вы можете использовать DB::prohibitDestructiveCommands, чтобы предотвратить выполнение команд, таких как migrate:fresh!

Это поможет предотвратить случайный запуск деструктивных команд в продакшне.

📱 @dev_notes_ru

#Laravel #DB #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍1
👩‍💻 Четыре распространенные ошибки Vite в Laravel

Узнайте о четырех распространенных ошибках, с которыми можно столкнуться при использовании Vite в приложениях Laravel. Рассмотрим возможные причины и способы их устранения.

🖥 Читать статью

📱 @dev_notes_ru

#Laravel #Vite
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
💡 Вы хотите выполнить какое-нибудь действие, если запланированная задача либо успешно выполнилась, либо завершилась неудачей?

Можно использовать обратные вызовы onSuccess() или onFailure(), для выполнения любых действий!

📱 @dev_notes_ru

#Laravel #Schedule #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
Я покидающий офис на выходные после git push --force.

📱 @dev_notes_ru

#joke
Please open Telegram to view this post
VIEW IN TELEGRAM
1😁1😱1
Обновление Laravel 12 выглядит так

📱 @dev_notes_ru

#joke
Please open Telegram to view this post
VIEW IN TELEGRAM
💯1🤣1