В Symfony 6.4 реализована новая возможность запуска подпроцессов с той же конфигурацией, что и их родительские PHP-процессы.
https://www.dev-notes.ru/articles/symfony/new-in-symfony-6-4-subprocess-handler/
https://www.dev-notes.ru/articles/symfony/new-in-symfony-6-4-subprocess-handler/
Заметки разработчика
Новое в Symfony 6.4 — Обработчик подпроцессов
В Symfony 6.4 появилась возможность запускать подпроцессы с той же конфигурацией, что и их родительские PHP-процессы.
В веб-приложениях могут возникать ситуации, когда необходимо разрешить пользователям удалять данные без их окончательного удаления из базы данных. Например, можно разрешить администратору удалить учётную запись другого пользователя, но при этом сохранить его данные в базе данных на случай ошибки администратора. Это позволит администратору при необходимости восстановить удалённую учётную запись. Именно в этом случае полезно мягкое удаление — soft delete.
В этой статье мы рассмотрим, что такое soft delete, каковы преимущества и недостатки его использования, а также как применять его в приложении Laravel. Мы рассмотрим, как подготовить модель и базу данных к soft delete, как удалять и восстанавливать модели, как удалять модели навсегда и как делать запросы к мягко удаляемым моделям. Затем мы рассмотрим, как тестировать модели с soft delete и как избежать распространённых ошибок при использовании мягкого удаления с помощью DB фасада.
К концу статьи вы должны хорошо понимать, что такое soft delete и как начать использовать его в своих приложениях Laravel.
https://www.dev-notes.ru/articles/eloquent/a-guide-to-soft-deletes-in-laravel/
В этой статье мы рассмотрим, что такое soft delete, каковы преимущества и недостатки его использования, а также как применять его в приложении Laravel. Мы рассмотрим, как подготовить модель и базу данных к soft delete, как удалять и восстанавливать модели, как удалять модели навсегда и как делать запросы к мягко удаляемым моделям. Затем мы рассмотрим, как тестировать модели с soft delete и как избежать распространённых ошибок при использовании мягкого удаления с помощью DB фасада.
К концу статьи вы должны хорошо понимать, что такое soft delete и как начать использовать его в своих приложениях Laravel.
https://www.dev-notes.ru/articles/eloquent/a-guide-to-soft-deletes-in-laravel/
Заметки разработчика
Руководство по Soft Delete в Laravel
Мы расскажем о преимуществах Soft Delete, для чего оно может быть использовано, как реализовать его в приложениях Laravel и о часто встречающихся ошибках.
👍1
В приложениях Symfony система маршрутизации требует, чтобы каждый маршрут имел имя, которое представляет собой произвольную строку, однозначно идентифицирующую маршрут. В дальнейшем это имя используется, например, при генерации URL-адресов на основе определений маршрутов.
https://www.dev-notes.ru/articles/symfony/new-in-symfony-6-4-fqcn-based-routes/
https://www.dev-notes.ru/articles/symfony/new-in-symfony-6-4-fqcn-based-routes/
Заметки разработчика
Новое в Symfony 6.4: Маршруты на основе FQCN
Symfony 6.4 определяет псевдонимы маршрутов на основе FQCN контроллера для вызываемых и одномаршрутных контроллеров.
Кодирование и декодирование base64 — это распространённая форма преобразования двоичного содержимого для представления его в виде безопасного для веб-приложений текста. Она широко используется для URL данных, таких как встроенные изображения.
Что происходит, когда вы применяете кодирование и декодирование base64 к строкам в JavaScript? В этой заметке рассматриваются нюансы и типичные "подводные камни", которых следует избегать.
https://www.dev-notes.ru/articles/javascript/nuances-of-base64-encoding/
Что происходит, когда вы применяете кодирование и декодирование base64 к строкам в JavaScript? В этой заметке рассматриваются нюансы и типичные "подводные камни", которых следует избегать.
https://www.dev-notes.ru/articles/javascript/nuances-of-base64-encoding/
Заметки разработчика
Нюансы base64-кодирования строк в JavaScript
Понимание и предотвращение распространённых проблем при применении кодирования и декодирования base64 к строкам.
👍1
В Symfony 6.4 появились новые функции Twig для генерации относительных/абсолютных URL, необходимых для имперсонации пользователей.
Имперсонация пользователя (выдача себя за другого пользователя) — это популярная функция безопасности Symfony, позволяющая войти в приложение под именем другого пользователя, не зная его учётных данных. В основном это необходимо для отладки проблем, о которых сообщают ваши клиенты и которые вы не можете воспроизвести с помощью собственного пользователя.
https://www.dev-notes.ru/articles/symfony/new-in-symfony-6-4-impersonation-utilities/
Имперсонация пользователя (выдача себя за другого пользователя) — это популярная функция безопасности Symfony, позволяющая войти в приложение под именем другого пользователя, не зная его учётных данных. В основном это необходимо для отладки проблем, о которых сообщают ваши клиенты и которые вы не можете воспроизвести с помощью собственного пользователя.
https://www.dev-notes.ru/articles/symfony/new-in-symfony-6-4-impersonation-utilities/
Заметки разработчика
Новое в Symfony 6.4 — Утилиты имперсонации
В Symfony 6.4 появились новые функции Twig для генерации относительных/абсолютных URL, необходимых для имперсонации пользователей.
Когда нам необходимо проверить, содержит ли объект JavaScript определённое свойство, мы можем использовать несколько методов, включая операторы JavaScript, специфические статические методы класса Object, методы экземпляра объекта, методы экземпляра массива и пользовательскую функцию JavaScript.
https://www.dev-notes.ru/articles/javascript/check-if-a-object-property-exists/
https://www.dev-notes.ru/articles/javascript/check-if-a-object-property-exists/
Заметки разработчика
Проверка существования свойства объекта в JavaScript
Узнайте, как проверить, содержит ли объект определённое свойство — все доступные варианты
В 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/
Контекст сериализатора управляет сериализацией и десериализацией ресурсов. Этот контекст передаётся всем нормализаторам и может быть использован, например, для задания формата даты/времени, способа представления пустых объектов и массивов и т.д.
В 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/
Заметки разработчика
Новое в Symfony 6.4: Контексты сериализатора на основе классов
В Symfony 6.4 можно применить атрибут контекста сериализатора ко всему классу, чтобы определить общую конфигурацию контекста для всех свойств класса.
👍1
Давайте будем честными: как часто мы сталкиваемся с кодом, использующим генераторы?
Я ежедневно просматриваю код различных разработчиков, но редко сталкиваюсь с генераторами.
Почему так?
Неужели люди их не понимают? Или они не видят их преимуществ?
В JavaScript, известном своей гибкостью и широким спектром возможностей, в ECMAScript 2015 появился уникальный инструмент — генераторы. Это мощные средства для управления асинхронным программированием, создания итерируемых объектов и выдачи нескольких значений. В этом руководстве мы рассмотрим механизм работы генераторов, их применение и способы использования их потенциала.
https://www.dev-notes.ru/articles/javascript/dont-be-afraid-of-javascript-generators/
Я ежедневно просматриваю код различных разработчиков, но редко сталкиваюсь с генераторами.
Почему так?
Неужели люди их не понимают? Или они не видят их преимуществ?
В JavaScript, известном своей гибкостью и широким спектром возможностей, в ECMAScript 2015 появился уникальный инструмент — генераторы. Это мощные средства для управления асинхронным программированием, создания итерируемых объектов и выдачи нескольких значений. В этом руководстве мы рассмотрим механизм работы генераторов, их применение и способы использования их потенциала.
https://www.dev-notes.ru/articles/javascript/dont-be-afraid-of-javascript-generators/
Заметки разработчика
Не бойтесь JavaScript-генераторов
Понимание генераторов JavaScript, раскрытие их уникальных возможностей и обучение на реальных примерах.
События в Laravel — это полезное удобство программирования, позволяющее разработчику оповещать, что в программе произошло нечто значимое.
При возникновении события все зарегистрированные слушатели запускаются и получают возможность действовать в соответствии с событием.
Подумайте об этом так — мама объявляет всему дому: "Пора идти!". Предполагая, что дети обратили на это внимание, начинается череда действий: Джек выключает свет, Лорен запирает входную дверь, Энди зовёт собаку со двора, а дети начинают усаживаться в машину.
Все родители, читающие это, знают, что на самом деле все происходит не так, но вы должны уловить суть. Объявление сделано (событие отправлено), и события начинают происходить (слушатели событий реагируют).
Если вы хотите получить подробную информацию о функциональности, связанной с событиями в Laravel, просмотрите страницу документации. Она действительно хороша. Однако эта статья не предназначена для замены документации. Вместо этого я хочу поделиться некоторыми способами использования событий в повседневной работе.
https://www.dev-notes.ru/articles/laravel/events-in-laravel/
При возникновении события все зарегистрированные слушатели запускаются и получают возможность действовать в соответствии с событием.
Подумайте об этом так — мама объявляет всему дому: "Пора идти!". Предполагая, что дети обратили на это внимание, начинается череда действий: Джек выключает свет, Лорен запирает входную дверь, Энди зовёт собаку со двора, а дети начинают усаживаться в машину.
Все родители, читающие это, знают, что на самом деле все происходит не так, но вы должны уловить суть. Объявление сделано (событие отправлено), и события начинают происходить (слушатели событий реагируют).
Если вы хотите получить подробную информацию о функциональности, связанной с событиями в Laravel, просмотрите страницу документации. Она действительно хороша. Однако эта статья не предназначена для замены документации. Вместо этого я хочу поделиться некоторыми способами использования событий в повседневной работе.
https://www.dev-notes.ru/articles/laravel/events-in-laravel/
Заметки разработчика
События в Laravel
События в Laravel — это полезное удобство программирования, позволяющее разработчику сделать объявление, что в программе произошло нечто значимое.
👍1
Одной из интересных особенностей Laravel Nova является возможность выдавать себя за пользователя прямо из панели управления. Это удобно по многим причинам, но я считаю, что когда вы получаете сообщение об ошибке или проблеме и хотите увидеть, что именно видит пользователь, выдача себя за него экономит массу времени, поскольку вы можете увидеть именно то, что видит пользователь.
https://www.dev-notes.ru/articles/laravel/laravel-impersonate/
https://www.dev-notes.ru/articles/laravel/laravel-impersonate/
Заметки разработчика
Laravel Impersonate — Как выдавать себя за других пользователей
Laravel Impersonate — это пакет, позволяющий настраивать имперсонацию, т.е. выдавать себя за пользователя в приложении Laravel.
👍1
Работа с датами в PHP иногда может быть несколько странной. Например, если вы изменяете переменную
Именно поэтому в Symfony 6.4 мы представляем
https://www.dev-notes.ru/articles/symfony/new-in-symfony-6-4-datepoint/
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/
Заметки разработчика
Новое в Symfony 6.4: DatePoint
В Symfony 6.4 представлен DatePoint, предоставляющий множество утилит, полную интеграцию с компонентом `Clock` и улучшенную обработку ошибок.
Удаление свойств объекта в JavaScript — не самая интересная задача, но существует множество способов её решения, каждый из которых раскрывает фундаментальный аспект работы JavaScript. В этой статье Juan Diego Rodríguez рассматривает каждый из способов.
https://www.dev-notes.ru/articles/javascript/removing-object-properties-javascript/
https://www.dev-notes.ru/articles/javascript/removing-object-properties-javascript/
Заметки разработчика
О чем нам говорит удаление свойств объектов в JavaScript
Удаление свойств объекта в JavaScript — не самая интересная задача. Но существует множество решений раскрывающих фундаментальный аспект работы JavaScript.
В Symfony 6.4 улучшена функция выхода из системы, что избавляет от необходимости явно определять маршруты выхода из системы в своих приложениях.
https://www.dev-notes.ru/articles/symfony/new-in-symfony-6-4-simpler-logout/
https://www.dev-notes.ru/articles/symfony/new-in-symfony-6-4-simpler-logout/
Заметки разработчика
Новое в Symfony 6.4 — Упрощённый выход из системы
В Symfony 6.4 улучшена функция выхода из системы, что избавляет от необходимости явно определять маршруты выхода из системы в своих приложениях.
Одним из наиболее распространённых и сложных вопросов, с которыми сталкиваются фронтенд-инженеры, являются соглашения об именовании CSS. С популярностью метода Блок Элемент Модификатор (БЭМ) многие привыкли организовывать свои стили по удобной схеме.
Грядущая реализация
https://www.dev-notes.ru/articles/css/css-scope-replace-bem/
Грядущая реализация
@scope в Chrome может ещё больше расширить преимущества БЭМ, позволив определять стили на уровне блоков в таблице стилей. Это может упростить поддержку стилей и обеспечить более жёсткий контроль над CSS-каскадом, влияющим на любое фронтенд-приложение.https://www.dev-notes.ru/articles/css/css-scope-replace-bem/
Заметки разработчика
Как CSS @scope может заменить БЭМ
Узнайте о новой функции CSS @scope, которая появится в Chrome 118 и может заменить БЭМ на более чистый и эргономичный синтаксис.
👍1
Вот несколько советов и приёмов, которые я узнал на своём пути, помогающих оптимизировать запросы к базе данных в Laravel. Иногда небольшие изменения могут быть очень существенными.
https://www.dev-notes.ru/articles/eloquent/optimizing-laravel-eloquent-queries/
https://www.dev-notes.ru/articles/eloquent/optimizing-laravel-eloquent-queries/
Заметки разработчика
Оптимизация Laravel Eloquent запросов
Вот несколько советов и приёмов, помогающих оптимизировать запросы к базе данных в Laravel. Иногда небольшие изменения могут быть очень существенными.
👍1
Каскадная таблица стилей (CSS) — это мощный язык стилей, помогающий фронтенд разработчикам оформлять обычные веб-страницы. Однако при использовании этого языка стилей можно допустить ряд ошибок мешающих писать эффективный код. В данной статье рассматриваются некоторые распространённые ошибки и предлагается решение для каждой из них.
https://www.dev-notes.ru/articles/css/common-css-mistakes-we-make/
https://www.dev-notes.ru/articles/css/common-css-mistakes-we-make/
Заметки разработчика
9 распространённых ошибок в CSS, которые мы совершаем
Далее приведены девять наиболее распространённых ошибок, часто совершаемых разработчиками; совершали ли вы какие-либо из них?
Вы когда-нибудь сталкивались с проблемой управления различными конфигурациями в Node.js приложениях? Хотелось бы иметь централизованный и организованный способ работы с такими секретами, как ключи API и учётные данные баз данных? Не ищите дальше! На помощь приходят переменные среды. В этой статье мы погрузимся в мир переменных среды в Node.js, рассмотрим их преимущества, примеры использования и лучшие практики эффективного управления ими.
Мы расскажем о настройке, доступе и организации переменных среды, а также об их использовании в различных средах и интеграции в сценарии npm. К концу этой статьи вы будете иметь полное представление о том, как переменные среды могут облегчить вашу жизнь как Node.js разработчика.
https://www.dev-notes.ru/articles/javascript/node-js-environment-variables-how-to-set-them-properly/
Мы расскажем о настройке, доступе и организации переменных среды, а также об их использовании в различных средах и интеграции в сценарии npm. К концу этой статьи вы будете иметь полное представление о том, как переменные среды могут облегчить вашу жизнь как Node.js разработчика.
https://www.dev-notes.ru/articles/javascript/node-js-environment-variables-how-to-set-them-properly/
Заметки разработчика
Переменные среды/окружения в Node.js: Как правильно их установить
К концу этой статьи вы будете хорошо понимать, как переменные среды могут облегчить жизнь Node.js-разработчика.
❤1👍1🔥1
В Symfony 6.4 добавлена поддержка переменной среды
В приложениях Symfony опция
https://www.dev-notes.ru/articles/symfony/new-in-symfony-6-4-build-dir-improvements/
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/
Заметки разработчика
Новое в Symfony 6.4: Улучшения каталога сборки
В Symfony 6.4 добавлена поддержка переменной среды APP_BUILD_DIR и обновлены подогреватели кэша для получения параметра build_dir.
Кодирование — это весело. А вот отладка? …Не очень. Именно поэтому тестирование имеет решающее значение для успеха любого нетривиального проекта. В этой статье я покажу как легко начать тестировать свои Laravel приложения. Давайте растопим лёд раз и навсегда!
https://www.dev-notes.ru/articles/laravel/start-testing-your-laravel-code-in-less-than-5-minutes/
https://www.dev-notes.ru/articles/laravel/start-testing-your-laravel-code-in-less-than-5-minutes/
Заметки разработчика
Начните тестировать Laravel код меньше чем за 5 минут
Тестирование имеет решающее значение для успеха любого нетривиального проекта. В этой статье я покажу как легко начать тестировать Laravel приложения.
Определение чистого кода субъективно. Оно часто становится источником горячих споров между разработчиками в Интернете. В этой статье мы рассмотрим возможности Laravel, позволяющие писать меньше кода.
https://www.dev-notes.ru/articles/laravel/eight-ways-to-write-clean-and-terse-code/
https://www.dev-notes.ru/articles/laravel/eight-ways-to-write-clean-and-terse-code/
Заметки разработчика
Восемь способов писать чистый и лаконичный код в Laravel
Определение чистого кода субъективно. Оно часто становится источником горячих споров между разработчиками в Интернете.