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

https://www.dev-notes.ru

@snakenf
Download Telegram
💡 Совет по Laravel: Удобные команды Artisan DB

Вам когда-нибудь нужно было проверить, работает ли подключение к БД так, как нужно? Сколько открытых соединений? Может быть, хотите узнать общий размер БД? В Artisan есть несколько классных команд, позволяющих сделать именно это 🚀.

📱 @dev_notes_ru

#laravel #artisan #php #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
💡 «Избегайте использования else» — один из интересных советов по написанию чистого кода. Нельзя полностью отказаться от него, но можно убрать ненужные else.

public function getUserStatus($user)
{
if ($user->isActive()) {
return 'active';
}
return 'inactive';
}


Приведенный пример можно ещё упростить, используя тернарный оператор.

public function getUserStatus($user)
{
return $user->isActive() ? 'active' : 'inactive';
}


📱 @dev_notes_ru

#php #cleancode #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍3
👩‍💻 BCMath: Новая функция bcdivmod

В PHP 8.4 в расширении BCMath представлена новая функция bcdivmod, делящая заданное число на заданный делитель и возвращающая как частное, так и остаток. Результат по сути идентичен вызову функций bcdiv и bcmod.

bcdivmod может быть использован в случаях, когда необходимо получить частное и остаток от деления, и избавляет от необходимости вызывать функции bcdiv и bcmod по отдельности.

Возвращаемое значение — массив, в котором первое значение — частное от деления, а второе — остаток.

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

📱 @dev_notes_ru

#php #php84 #bcmath
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
💡 Совет по Laravel: Хелпер `tap`

Сколько раз приходилось возвращать объект сразу после выполнения элементарного действия? Да, много раз, я знаю. Хелпер tap позволяет сделать именно это 🚀.

📱 @dev_notes_ru

#laravel #php #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
👩‍💻 Для переименования удалённой ветки, выполните следующие действия:

1. Переименуйте локальную ветку:
Если находитесь в ветке, которую хотите переименовать:
git branch -m new-name
Если находитесь в другой ветке:
git branch -m old-name new-name

2. Удалите удалённую ветку `old-name` и запуште локальную ветку `new-name`:
git push origin :old-name new-name

3. Сбросьте апстрим для локальной ветки `new-name`:
Переключитесь на эту ветку, а затем:
git push origin -u new-name

📱 @dev_notes_ru

#git #branch #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
🛡 Filament v3.2.115: исправлена критическая XSS-уязвимость в компонентах ColorColumn и ColorEntry

Недавно Filament выпустил версию 3.2.115, устраняющую критическую проблему безопасности, связанную с межсайтовым скриптингом (XSS). Эта уязвимость затрагивала компоненты ColorColumn и ColorEntry. Далее рассмотрим детали уязвимости, выпущенное исправление и способы защиты приложений.

Обзор XSS-уязвимости
Уязвимость позволяла потенциальным злоумышленникам использовать XSS в компонентах ColorColumn и ColorEntry. Это могло привести к выполнению вредоносных скриптов внутри приложения, что нарушало целостность пользовательских данных и приложения.

Исправление системы безопасности
В ответ на эту проблему команда Filament выпустила исправление в версии 3.2.115. Это обновление призвано обеспечить безопасность приложений, закрыв точки входа для XSS-атак в затронутых компонентах.

Выпуск CVE и Dependabot
Чтобы помочь разработчикам обеспечить безопасность своих приложений, для уязвимости был выпущен CVE (Common Vulnerabilities and Exposures). Это активирует Dependabot, он оповестит затронутые репозитории о проблеме и порекомендует обновиться до исправленной версии.

Подробности эксплойта и рекомендации по безопасности
Команда Filament отложила публикацию полной информации об эксплуатации, чтобы дать разработчикам время обновить свои приложения. В ближайшие недели будет выпущен подробный совет по безопасности, в котором будет описано, как можно было использовать уязвимость.

📱 @dev_notes_ru

#Laravel #Filament #security
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
👩‍💻 PHP 8.4: MBString: База данных символов Юникода обновлена до версии 16

Благодаря поддержке Unicode 16 расширение MBString может работать со всеми новейшими символами Emoji, а также имеет самую актуальную информацию о смене регистра и ширине символов.

Расширение MBString содержит подмножество данных из спецификации Unicode, используемое для таких операций, как преобразование заданной строки в верхний или нижний регистр, определение ширины строки (удобно для некоторых восточноазиатских шрифтов) и т.д.
В PHP 8.3 расширение MBString включало данные стандарта Unicode 14.0, выпущенного в сентябре 2022 года. В PHP 8.4 источник данных Unicode Character Database (UCD) был обновлён с 14.0 до 16.0, выпущенного в 2024 сентябре. Unicode 16.0 — это последняя версия UCD, доступная на этот момент.

В версии Unicode 15.0, 15.1 и 16.0 добавлено 4 489, 627 и 5 185 новых символов. Кроме того, три версии Unicode вместе взятые поддерживают 11 дополнительных скриптов. Однако для расширения MBString важны обновления в правилах сложения регистра символов, влияющие на такие функции, как mb_strtolower, mb_strtoupper и назначение значения восточноазиатской ширины, определяющее, считается ли данный символ нормальной ширины или широким (mb_strwidth).

Прямых изменений в функциях MBString нет. Данные символов Юникода являются частью самого расширения MBString и будут использоваться во всех функциях PHP 8.4.

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

📱 @dev_notes_ru

#php #php84 #mbstring
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥1
💡 Совет по Laravel: Передача нескольких ID и определенных столбцов в `find`

Мы часто используем find(), но знаете ли вы, что можно передать массив ID и выбрать конкретные столбцы? 🚀

📱 @dev_notes_ru

#laravel #php #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥1
👩‍💻 Анимация по высоте/ширине авто (без хаков)

Всего три строки кода, и вы получаете плавный переход к height: auto.

& {
interpolate-size: allow-keywords;
}
p {
transition: 1s;
}
p:not(:hover) {
height: 5lh;
}


Все волшебство выполняет interpolate-size: allow-keywords. Подробнее об этом читайте в статье Анимация height: auto; (и другие ключевые слова внутреннего размера) в CSS.

👩‍💻 Посмотреть пример на CodePen

Пока поддерживается только в Chromium-based браузерах.

👩‍💻 Chrome, 👩‍💻 Edge, 👩‍💻 Brave.
👩‍💻 Firefox, 👩‍💻 Vivaldi и Яндекс Браузер.

📱 @dev_notes_ru

#css #feature #animation
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
👩‍💻 Сокращения JavaScript экономящие время

Разработчик JavaScript, пишущий чистый, эффективный и лаконичный код может значительно сократить время разработки. Понимание ряда удобных сокращений JavaScript может сделать код более читаемым и помочь избежать повторяющихся шаблонов. В статье мы рассмотрим 10 мощных сокращений JavaScript, способных сэкономить часы работы над кодом и повысить производительность.

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

📱 @dev_notes_ru

#javascript #js #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥1
💡 Совет по Laravel: Загрузка подсчета отношений на лету

При работе с моделями вам может понадобиться подсчёт отношений. Если вы забыли его загрузить, всегда можно использовать loadCount, чтобы подгрузить подсчёт на лету 🚀.

📱 @dev_notes_ru

#laravel #php #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥1
👩‍💻 Цветовой круг с градиентом

Используйте функцию conic-gradient() и новую цветовую интерполяцию, чтобы создать симпатичный цветовой круг.

.box {
background: conic-gradient(in hsl longer hue,red 0 0);
}


✔️ Укажите браузеру более длинный (longer) путь между красным (red) и красным.

Без сложного сочетания цветов

👩‍💻 Codepen

📱 @dev_notes_ru

#css #gradient #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
👩‍💻 Использование async и defer для управления скриптами

В мире веб-разработки оптимизация времени загрузки страниц имеет решающее значение. Два мощных атрибута тега <script>async и defer — могут существенно повлиять на производительность сайта. Использование этих атрибутов без их глубокого понимания может негативно сказаться на производительности и привести к ошибкам. Давайте начнём с основ и узнаем, что делают эти атрибуты и когда их следует использовать.

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

📱 @dev_notes_ru

#html #script #async #defer
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
💡Совет по Laravel

Знаете ли вы... В Laravel есть класс Benchmark, позволяющий измерить время выполнения любой задачи

📱 @dev_notes_ru

#laravel #php #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣2🔥1
👩‍💻 Удаление дубликатов из массивов и строк в JavaScript

Удаление дубликатов — распространённая проблема в программировании, возникающая в различных контекстах, например, при очистке данных или обеспечении уникальности записей. Этот вопрос могут задать на собеседовании, поскольку он довольно прост и может подготовить собеседника к более сложным вопросам.

Рассмотрим два решения задачи: одно для удаления дубликатов из массивов, другое — для удаления дубликатов из строк (хотя они очень похожи).

На самом деле всё довольно просто, хотя если вы новичок в программировании, то, возможно, не знаете, как это сделать.

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

📱 @dev_notes_ru

#JavaScript #js #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2👌1
💡Совет по Laravel

Хотите протестировать содержимое email в приложении, но не хотите настраивать что-то вроде Mailgun?

Просто используйте параметр .env MAIL_DRIVER=log, и все email будут сохраняться в файле storage/logs/laravel.log, а не отправляться.

📱 @dev_notes_ru

#laravel #php #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁2🤣1
👩‍💻 Используйте useId() вместо вручную созданных ID

Мы считаем, что следует чаще использовать хук useId(). Если вы обнаружили, что не используете его, есть большая вероятность, что ваше приложение или сайт либо недоступны (a11y), либо вы создаёте код, склонный к ошибкам. Позвольте объяснить.

tl;dr
Используйте`useRef()` вместо вручную созданных ID, если требуется доступ к DOM из JS
Используйте useId() вместо вручную созданных ID, чтобы связать два узла DOM для обеспечения доступности.


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

📱 @dev_notes_ru

#React #Hooks #useId
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1👎1🔥1
💡 Совет по Laravel: Улучшенный dd()

При отладке запроса в Eloquent для проверки результата часто используется dd(). А знаете ли вы, что можно просто подключить его напрямую? 🚀

📱 @dev_notes_ru

#laravel #eloquent #php #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥1