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

https://www.dev-notes.ru

@snakenf
Download Telegram
В Symfony 6.4 можно применить атрибут контекста сериализатора ко всему классу, чтобы определить общую конфигурацию контекста для всех свойств класса.

Контекст сериализатора управляет сериализацией и десериализацией ресурсов. Этот контекст передаётся всем нормализаторам и может быть использован, например, для задания формата даты/времени, способа представления пустых объектов и массивов и т.д.

В Symfony этот контекст можно определить несколькими способами: как массив PHP, передаваемый методам serialize() и deserialize(), как параметр глобальной конфигурации framework.serializer.default_context и через атрибут #[Context] в свойствах класса.

https://www.dev-notes.ru/articles/symfony/new-in-symfony-6-4-class-based-serializer-contexts/
👍1
Давайте будем честными: как часто мы сталкиваемся с кодом, использующим генераторы?

Я ежедневно просматриваю код различных разработчиков, но редко сталкиваюсь с генераторами.

Почему так?

Неужели люди их не понимают? Или они не видят их преимуществ?

В JavaScript, известном своей гибкостью и широким спектром возможностей, в ECMAScript 2015 появился уникальный инструмент — генераторы. Это мощные средства для управления асинхронным программированием, создания итерируемых объектов и выдачи нескольких значений. В этом руководстве мы рассмотрим механизм работы генераторов, их применение и способы использования их потенциала.

https://www.dev-notes.ru/articles/javascript/dont-be-afraid-of-javascript-generators/
События в Laravel — это полезное удобство программирования, позволяющее разработчику оповещать, что в программе произошло нечто значимое.

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

Подумайте об этом так — мама объявляет всему дому: "Пора идти!". Предполагая, что дети обратили на это внимание, начинается череда действий: Джек выключает свет, Лорен запирает входную дверь, Энди зовёт собаку со двора, а дети начинают усаживаться в машину.

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

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

https://www.dev-notes.ru/articles/laravel/events-in-laravel/
👍1
Одной из интересных особенностей Laravel Nova является возможность выдавать себя за пользователя прямо из панели управления. Это удобно по многим причинам, но я считаю, что когда вы получаете сообщение об ошибке или проблеме и хотите увидеть, что именно видит пользователь, выдача себя за него экономит массу времени, поскольку вы можете увидеть именно то, что видит пользователь.

https://www.dev-notes.ru/articles/laravel/laravel-impersonate/
👍1
Работа с датами в PHP иногда может быть несколько странной. Например, если вы изменяете переменную DateTime для создания новой даты, то исходная переменная также изменяется. Поэтому для решения этой проблемы в PHP был введён класс DateTimeImmutable. К сожалению, этот класс также имеет свои особенности, например, при возникновении ошибки вместо выброса исключений возвращает false.

Именно поэтому в Symfony 6.4 мы представляем DatePoint — новый класс для работы с датами в PHP. Во-первых, этот класс расширяет DateTimeImmutable, поэтому вы можете использовать его везде, где ожидается DateTimeImmutable или DateTimeInterface.

https://www.dev-notes.ru/articles/symfony/new-in-symfony-6-4-datepoint/
Удаление свойств объекта в JavaScript — не самая интересная задача, но существует множество способов её решения, каждый из которых раскрывает фундаментальный аспект работы JavaScript. В этой статье Juan Diego Rodríguez рассматривает каждый из способов.

https://www.dev-notes.ru/articles/javascript/removing-object-properties-javascript/
Одним из наиболее распространённых и сложных вопросов, с которыми сталкиваются фронтенд-инженеры, являются соглашения об именовании CSS. С популярностью метода Блок Элемент Модификатор (БЭМ) многие привыкли организовывать свои стили по удобной схеме.

Грядущая реализация @scope в Chrome может ещё больше расширить преимущества БЭМ, позволив определять стили на уровне блоков в таблице стилей. Это может упростить поддержку стилей и обеспечить более жёсткий контроль над CSS-каскадом, влияющим на любое фронтенд-приложение.

https://www.dev-notes.ru/articles/css/css-scope-replace-bem/
👍1
Вот несколько советов и приёмов, которые я узнал на своём пути, помогающих оптимизировать запросы к базе данных в Laravel. Иногда небольшие изменения могут быть очень существенными.

https://www.dev-notes.ru/articles/eloquent/optimizing-laravel-eloquent-queries/
👍1
Каскадная таблица стилей (CSS) — это мощный язык стилей, помогающий фронтенд разработчикам оформлять обычные веб-страницы. Однако при использовании этого языка стилей можно допустить ряд ошибок мешающих писать эффективный код. В данной статье рассматриваются некоторые распространённые ошибки и предлагается решение для каждой из них.

https://www.dev-notes.ru/articles/css/common-css-mistakes-we-make/
Вы когда-нибудь сталкивались с проблемой управления различными конфигурациями в Node.js приложениях? Хотелось бы иметь централизованный и организованный способ работы с такими секретами, как ключи API и учётные данные баз данных? Не ищите дальше! На помощь приходят переменные среды. В этой статье мы погрузимся в мир переменных среды в Node.js, рассмотрим их преимущества, примеры использования и лучшие практики эффективного управления ими.

Мы расскажем о настройке, доступе и организации переменных среды, а также об их использовании в различных средах и интеграции в сценарии npm. К концу этой статьи вы будете иметь полное представление о том, как переменные среды могут облегчить вашу жизнь как Node.js разработчика.

https://www.dev-notes.ru/articles/javascript/node-js-environment-variables-how-to-set-them-properly/
1👍1🔥1
В Symfony 6.4 добавлена поддержка переменной среды APP_BUILD_DIR и обновлены подогреватели кэша для получения параметра build_dir.

В приложениях Symfony опция kernel.build_dir определяет каталог, в котором при компиляции приложения генерируется содержимое, доступное только для чтения. В Symfony 6.4 мы внесли некоторые улучшения, связанные с этим параметром.

https://www.dev-notes.ru/articles/symfony/new-in-symfony-6-4-build-dir-improvements/
Кодирование — это весело. А вот отладка? …Не очень. Именно поэтому тестирование имеет решающее значение для успеха любого нетривиального проекта. В этой статье я покажу как легко начать тестировать свои Laravel приложения. Давайте растопим лёд раз и навсегда!

https://www.dev-notes.ru/articles/laravel/start-testing-your-laravel-code-in-less-than-5-minutes/
Определение чистого кода субъективно. Оно часто становится источником горячих споров между разработчиками в Интернете. В этой статье мы рассмотрим возможности Laravel, позволяющие писать меньше кода.

https://www.dev-notes.ru/articles/laravel/eight-ways-to-write-clean-and-terse-code/
Для frontend-разработчика одним из самых утомительных занятий является определение свойств текстовых элементов для различных размеров экрана с помощью медиа-запроса, что приводит к созданию большого файла css. В этой статье мы расскажем как сделать тексты на сайте отзывчивыми без использования медиа-запроса, тем самым сэкономив время и место.

https://www.dev-notes.ru/articles/css/responsive-typography-with-clamp/
CSS — постоянно развивающийся язык. С каждой итерацией он становится все лучше и лучше. Поэтому важно следить за новейшими возможностями CSS, чтобы использовать их в своих проектах и меньше зависеть от библиотек сторонних разработчиков.

В этой статье я расскажу о некоторых интересных возможностях CSS, способных облегчить вам жизнь. И хотя они пока доступны не во всех браузерах, вы можете использовать их уже сегодня для улучшения перспектив своих проектов. А в тех браузерах, где эти функции не поддерживаются, большинство из них будет просто проигнорировано.

https://www.dev-notes.ru/articles/css/upcoming-css-features-to-make-your-life-easier/
Ошибка 503 Service Temporarily Unavailable — это распространённый код состояния HTTP, который указывает на недоступность веб-сервера. Её появление означает, что в данный момент сервер не может обработать запрос из-за временной перегрузки или технического обслуживания. В данной статье мы рассмотрим причины возникновения ошибки 503, типичные сценарии её появления и эффективные шаги по устранению этой проблемы в Nginx.

https://www.dev-notes.ru/articles/devops/how-to-fix-503-error-nginx/
👍1
В Chrome 118 появилась новая возможность медиа-запрос prefers-reduced-transparency из CSS Media Queries 5. Непрозрачные интерфейсы могут вызывать головную боль или мешать зрительному восприятию при различных нарушениях зрения. Именно поэтому в Windows, macOS и iOS существуют системные настройки, позволяющие уменьшить или убрать прозрачность пользовательского интерфейса.

https://www.dev-notes.ru/articles/css/prefers-reduced-transparency/