Заметки разработчика
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
This media is not supported in your browser
VIEW IN TELEGRAM
👩‍💻+👩‍💻 Вкладки со скруглёнными углами и границами

Пример переключения между вкладками от Ana Tudor

Изначально я сделала это после того, как кто-то спросил, как создать вкладки с закругленными углами и границами.

👩‍💻 https://codepen.io/thebabydino/pen/oNKLLbv

Ванильный CSS + JS + немного SVG-магии.🪄

📱 @dev_notes_ru

#CSS #JS #codepen #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
👩‍💻 Новое в Symfony CLI: автодополнение команд

Как разработчики, мы проводим много времени в терминале, выполняя десятки команд. Некоторые команды могут быть длинными или сложными, похожими на другие инструменты, но не совсем такими же! Именно поэтому многие из нас любят автодополнение.

Хорошая новость заключается в том, что начиная с Symfony CLI v5.10, Symfony CLI предоставляет автодополнение команд для оболочек Bash, ZSH и Fish.

Чтобы включить его, следуйте инструкциям, отображаемым командой symfony completion --help.

Но это ещё не всё! Знаете ли вы, что Symfony Console обеспечивает автодополнение команд bin/console в вашей оболочке? Да! Начиная с версии 5.4 для Bash, 6.1 для Fish и 6.2 для ZSH. Поэтому Symfony CLI может перенаправлять инструкции автодополнения команд в проект Symfony при автодополнение команд symfony console из коробки!

Но и это ещё не всё! Вы, наверное, знаете, что сам Composer использует Symfony Console. Так что да, в symfony composer тоже будет работать!

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

В качестве небольшого приятного бонуса, поскольку Symfony CLI также разработан с использованием автономных библиотек с открытым исходным кодом, эта функция автодополнения команд теперь доступна для любого инструмента, использующего symfony-cli/console, как, например, Blackfire CLI.

📱 @dev_notes_ru

#Symfony #cli
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
👩‍💻 Новое в Symfony 7.2: Улучшения языка выражений

В Symfony 7.2 улучшен компонент ExpressionLanguage, добавлены новые битовые и логические операторы, упрощена регистрация кастомных провайдеров и реализована поддержка комментариев.

Компонент ExpressionLanguage предоставляет механизм, позволяющий компилировать и оценивать выражения. Основное назначение компонента — позволить пользователям использовать выражения внутри конфигурации для более сложной логики. В Symfony 7.2 мы улучшили его, добавив новые возможности.

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

📱 @dev_notes_ru

#Symfony #features #ExpressionLanguage
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
👩‍💻 Как деструктуризация массивов может замедлить JavaScript код

В статье я расскажу об оптимизации использования деструктурирующего присваивания для повышения производительности. Рассмотрим различия в байткоде между двумя подходами к деструктурирующему присваиванию. Я проведу тест, подчёркивающий эти различия, и в конце вы поймёте, почему ArrayAssignmentPattern не всегда является лучшим выбором.

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

📱 @dev_notes_ru

#JavaScript #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
💡 Совет по Laravel: Новый метод кэширования `flexible`

Начиная с Laravel v11.23.0, можно использовать новый метод flexible для кэширования. Если приходилось сталкиваться с проблемой перепроверки кэша до истечения срока его действия, воспользуйтесь им 🚀.

📱 @dev_notes_ru

#laravel #cache #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
👩‍💻 Правильно выбранный viewBox может помочь избежать необходимости устанавливать кучу атрибутов


<svg viewBox='0 0 12 12'>
<line x1='3' y1='6' x2='9' y2='6' stroke='red' stroke-width='3'/>
</svg>

<svg viewBox='-1 -2 4 4'>
<line x2='2' stroke='red'/>
</svg>


Оба варианта дают одинаковый результат.

📱 @dev_notes_ru

#SVG #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥21
👩‍💻 Новое в Symfony 7.2: Атрибут AsMessage

В Symfony 7.2 представлен новый атрибут #[AsMessage], позволяющий настраивать транспорт(ы) непосредственно в классе сообщения

Компонент Messenger представляет шину сообщений с возможностью отправки сообщений и их синхронной или асинхронной обработки с помощью транспорта (очередей). Основными элементами Messenger являются сообщения (PHP класс хранящий данные), обработчики (PHP класс вызываемый при отправке поддерживаемых им сообщений) и транспорты (обрабатывающие отправку и отправку сообщений).

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

📱 @dev_notes_ru

#Symfony #features #AsMessage
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍1
👩‍💻 Автоматизация резервного копирования баз данных c Laravel

Обеспечение регулярного резервного копирования баз данных крайне важно для любого приложения. Планировщик задач Laravel в сочетании с облачным хранилищем предоставляет эффективный способ автоматизировать этот процесс. Давайте рассмотрим, как реализовать автоматическое резервное копирование баз данных с помощью Laravel и хранить его в облаке.

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

📱 @dev_notes_ru

#Laravel #Backup
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
💡 Совет по Laravel: Используйте метод `set` в фабриках

Иногда бывает необходимо переопределить или передать фабрике один атрибут. Хотя для этого можно передать целый массив, можно использовать метод set, выполняющий именно эту функцию 🚀.

📱 @dev_notes_ru

#laravel #factory #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
👩‍💻Краткое пошаговое руководство по созданию внутренней тени для элемента img

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

📱 @dev_notes_ru

#SVG #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1🤔1🤪1
C’est la vie

📱 @dev_notes_ru

#joke
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣2😁1
👩‍💻 Новое в Symfony 7.2: Именованные сериализаторы

Symfony 7.2 позволяет конфигурировать несколько экземпляров сериализаторов с различными контекстами по умолчанию, конвертерами имён, наборами нормализаторов и кодировщиков.

В Symfony 7.2 компонент Serializer позволяет настроить несколько экземпляров сериализатора с различными контекстами по умолчанию, конвертерами имён, наборами нормализаторов и кодировщиков. Это удобно, если ваше приложение взаимодействует с несколькими API, каждый из которых использует свои правила.

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

📱 @dev_notes_ru

#Symfony #Serializer
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
👩‍💻 Sass: @import объявлен устаревшим

В 2019 году была выпущена система модулей Sass, добавившая в язык новые правила @use и @forward, призванные заменить @import и сделать таблицы стилей более удобными и менее подверженными ошибкам. Теперь можно объявить, что @import официально устарел, начиная с версии Dart Sass 1.80.0.

Модульная система позволяет разработчикам и инструментам легко определить, где определён тот или иной член Sass, добавляет интервалы между именами, чтобы избежать необходимости вручную добавлять длинные и неудобные пространства имён к именам, и позволяет авторам библиотек гарантировать, что их приватные помощники не будут доступны последующим пользователям. Кроме того, поскольку каждый модуль загружается только один раз, использование одной и той же таблицы стилей несколько раз больше не приводит к дублированию CSS.

С момента выпуска модульной системы прошло 4,5 года, и уже больше года прошло с тех пор, как мы преодолели порог в 80% использования Dart Sass, установленный нами для начала процедуры устаревания, и мы чувствуем себя комфортно, делая этот шаг. Однако мы понимаем, что это большое изменение в языке, и не все пользователи смогли полностью отказаться от @import до сих пор.

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

📱 @dev_notes_ru

#Frontend #Sass
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
💡 Совет по Laravel

А вы знаете о хелпере rescue(), доступном в Laravel?

Функция rescue() принимает в качестве параметра функцию, которая выполняется немедленно, но не выбрасывает исключение, если оно возникло.

Отсюда и название rescue(), поскольку запрос продолжается и «спасается» от исключения. Отличная мысль!

Однако если исключение возникает, о нем все равно сообщается в лог-файлы.

Вот пример разницы между функцией rescue() и блоком try-catch...

📱 @dev_notes_ru

#laravel #helper #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍2🔥2
👩‍💻+👩‍💻 Реалистичные зернистые тени без дублирования изображения

👩‍💻 Realistic grainy shadows with no image duplication

Навеяно https://codepen.io/gayane-gasparyan/pen/LYGGmmr, только здесь не нужно устанавливать каждое изображение в качестве фона div, а затем дублировать его в pseudo.

Вместо этого используется один элемент img с alt. Более поддерживаемый, доступный + меню img по правому клику.

Ana Tudor

📱 @dev_notes_ru

#html #css #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
1
4 из 5 разработчиков наслаждаются code review

📱 @dev_notes_ru

#joke
Please open Telegram to view this post
VIEW IN TELEGRAM
😢1🤣1
👩‍💻 Новое в Symfony 7.2: Линтер переводов

В Symfony 7.2 появилась новая команда lint:translations для проверки валидности содержимого переводов.

Линтеры — инструменты статического анализа кода, используемые для выявления ошибок, таких как синтаксические и стилистические проблемы. Symfony включает множество команд линтеров для проверки конфигурационных файлов YAML (lint:yaml), контейнерных сервисов (lint:container), шаблонов Twig (lint:twig) и даже синтаксиса файлов перевода XLIFF (lint:xliff).

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

📱 @dev_notes_ru

#Symfony #Linter
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍1
👩‍💻 Git Workflow: Эффективное управление кодовой базой

Независимо от того, являетесь ли вы опытным разработчиком или только начинаете, эффективное управление кодовой базой имеет решающее значение. Git, популярная система контроля версий, помогает отслеживать изменения, сотрудничать с другими разработчиками и поддерживать целостность проекта. Однако без правильной организации рабочего процесса может стать непосильной задачей. В статье мы рассмотрим Git Workflow, охватывающий различные сценарии и лучшие практики, включая стратегии ветвления, такие как feature-based и forking workflows, для обеспечения эффективного сотрудничества и управления проектом.

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

📱 @dev_notes_ru

#Git #Workflow
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3👌2
💡 Совет по Laravel

А вы знаете о классе Lottery, поставляемом с Laravel?

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

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

Вот пример, иллюстрирующий использование класса Lottery для отправки рекламных уведомлений случайным пользователям на основе определенных действий...

📱 @dev_notes_ru

#laravel #lottery #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣4😁1
👩‍💻 Многим понравилась эта анимация с круговыми радиальными градиентами, поэтому я обновила её, использовав тригонометрические функции CSS.

👩‍💻 https://codepen.io/thebabydino/pen/poKeMZd?editors=0100

Это позволило сократить количество компилируемого CSS примерно вдвое. Кроме того, теперь она кроссбраузерная - начиная с этого лета 👩‍💻 Firefox поддерживает анимацию CSS переменных.

Ana Tudor

📱 @dev_notes_ru

#css #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2