PHP Дайджест — Август 2022
на английском языке от Романа Пронского
https://blog.jetbrains.com/phpstorm/2022/08/php-annotated-august-2022/
на английском языке от Романа Пронского
https://blog.jetbrains.com/phpstorm/2022/08/php-annotated-august-2022/
👍21👎1
Тейлор поделился планами убрать из документации пакеты Jetstream и Fortify, но продолжить для них выпуск багфиксов. Основной его аргумент, что Laravel+Breeze+Sanctum покрывают все необходимые потребности проектов.
Однако большинство разработчиков восприняли негативно инициативу Тейлора. Один из факторов недовольства — отсутствие альтернатив для двухфакторной аутентификации и системе команд (Teams) из Jetstream.
Другая часть считает, что команде Laravel нет смысла распыляться на несколько однотипных пакетов и лучше совершенствовать один.
Напомню, что речь идёт о официальных пакетах для создания аутентификации в фреймворке.
Laravel Jetstream включает в себя системы логина, регистрации, проверки электронной почты, двухфакторную аутентификацию, управление командами и сессиями. Разработан с использованием Tailwind CSS.
Laravel Fortify — это независимая бэкенд-аутентификация для Laravel. Он предоставляет нам всю бэкэнд-логику для аутентификации (как если вы использовали Laravel 7, то это были бы Auth-контроллеры). Jetstream как раз использует Fortify.
Laravel Breeze – это минимальная и простая реализация всего функционала аутентификации Laravel, включая вход в систему, регистрацию, сброс пароля, подтверждение адреса электронной почты и пароля. По умолчанию состоит из простых шаблонов Blade, стилизованных с помощью Tailwind CSS.
Laravel Sanctum — легковесная система аутентификации для SPA (одностраничных приложений), мобильных приложений и простых API на основе токенов.
https://twitter.com/taylorotwell/status/1562553585820639239
Однако большинство разработчиков восприняли негативно инициативу Тейлора. Один из факторов недовольства — отсутствие альтернатив для двухфакторной аутентификации и системе команд (Teams) из Jetstream.
Другая часть считает, что команде Laravel нет смысла распыляться на несколько однотипных пакетов и лучше совершенствовать один.
Напомню, что речь идёт о официальных пакетах для создания аутентификации в фреймворке.
Laravel Jetstream включает в себя системы логина, регистрации, проверки электронной почты, двухфакторную аутентификацию, управление командами и сессиями. Разработан с использованием Tailwind CSS.
Laravel Fortify — это независимая бэкенд-аутентификация для Laravel. Он предоставляет нам всю бэкэнд-логику для аутентификации (как если вы использовали Laravel 7, то это были бы Auth-контроллеры). Jetstream как раз использует Fortify.
Laravel Breeze – это минимальная и простая реализация всего функционала аутентификации Laravel, включая вход в систему, регистрацию, сброс пароля, подтверждение адреса электронной почты и пароля. По умолчанию состоит из простых шаблонов Blade, стилизованных с помощью Tailwind CSS.
Laravel Sanctum — легковесная система аутентификации для SPA (одностраничных приложений), мобильных приложений и простых API на основе токенов.
https://twitter.com/taylorotwell/status/1562553585820639239
👍56👎9
Релиз Laravel 9.27
https://github.com/laravel/framework/releases/tag/v9.27.0
также зарелизены:
Cashier Stripe 14.1
Passport 11.0.1
Pint 1.1.2
https://github.com/laravel/framework/releases/tag/v9.27.0
также зарелизены:
Cashier Stripe 14.1
Passport 11.0.1
Pint 1.1.2
👍16❤1
В новом релизе Laravel теперь можно переводить дефолтные сообщение валидации «The given data was invalid.» и « (and 1 more error)». Казалось бы ерунда, но на протяжении минимум пары лет Тейлор категорически отвергал десятки пул-реквестов на их локализацию. И, внезапно, нашему Андрею @Helldar удалось убедить хозяина фреймворка внести это изменение. Пишу об этом, потому что команда разработки решила не указывать это в changelog'e.
Кстати, Андрей, как и множество других прекрасных программистов, живёт и помогает новичкам в нашем дружелюбном Laravel-чате https://t.me/laravel_web
Кстати, Андрей, как и множество других прекрасных программистов, живёт и помогает новичкам в нашем дружелюбном Laravel-чате https://t.me/laravel_web
👍104
Мадуро разрабатывает новую фичу для Laravel 9 — Signal Trap (ловушка сигналов как в bash), которая позволит перехватывать сигналы процесса и выполнять нужный код при их перехвате.
На скриншоте видно, что artisan-команда экспортирует в файл некие данные. И поставлена ловушка на сигнал SIGTERM (завершение процесса), которая при срабатывании поставит экспорт на паузу и выбросит исключение.
Впрочем уже существует пакет spatie/laravel-signal-aware-commands, который также позволяет работать с сигналами в Laravel-приложениях.
На скриншоте видно, что artisan-команда экспортирует в файл некие данные. И поставлена ловушка на сигнал SIGTERM (завершение процесса), которая при срабатывании поставит экспорт на паузу и выбросит исключение.
Впрочем уже существует пакет spatie/laravel-signal-aware-commands, который также позволяет работать с сигналами в Laravel-приложениях.
👍44👎2
Работаем с событиями Laravel-моделей
При работе с Eloquent-моделями часто возникает необходимость использовать события, генерируемые в процессе жизненного цикла моделей. Существует несколько различных способов сделать это. В этом уроке я рассмотрю их все и объясню преимущества и недостатки каждого.
https://laravel.demiart.ru/working-with-laravel-model-events/
При работе с Eloquent-моделями часто возникает необходимость использовать события, генерируемые в процессе жизненного цикла моделей. Существует несколько различных способов сделать это. В этом уроке я рассмотрю их все и объясню преимущества и недостатки каждого.
https://laravel.demiart.ru/working-with-laravel-model-events/
👍38
Релиз Laravel 9.28
https://github.com/laravel/framework/releases/tag/v9.28.0
Из значимых фишек - добавлены Signal Traps, о которых мы писали ранее.
https://github.com/laravel/framework/releases/tag/v9.28.0
Из значимых фишек - добавлены Signal Traps, о которых мы писали ранее.
GitHub
Release v9.28.0 · laravel/framework
Added
Added view data assertions to TestView (#43923)
Added Illuminate/Routing/Redirector::getIntendedUrl() (#43938)
Added Eloquent mode to prevent prevently silently discarding fills for attribut...
Added view data assertions to TestView (#43923)
Added Illuminate/Routing/Redirector::getIntendedUrl() (#43938)
Added Eloquent mode to prevent prevently silently discarding fills for attribut...
👍16
Learning Laravel: Assets and Authentication
Урок для начинаюших от Tighten про ресурсы и аутентификацию
https://tighten.com/blog/learning-laravel-assets-authentication/
Урок для начинаюших от Tighten про ресурсы и аутентификацию
https://tighten.com/blog/learning-laravel-assets-authentication/
👍26
Полное погружение в Laravel-очереди
Объёмная статья, позволяющая полностью разобраться как асинхронно выполнять задачи с помощью очередей и воркеров.
https://www.honeybadger.io/blog/laravel-queues-deep-dive/
Объёмная статья, позволяющая полностью разобраться как асинхронно выполнять задачи с помощью очередей и воркеров.
https://www.honeybadger.io/blog/laravel-queues-deep-dive/
👍72
В Laravel 9.31 будет возможность использовать UUID и ULID в качестве первичных ключей для Eloquent-моделей с помощью трейтов
https://github.com/laravel/framework/pull/44074
HasUuid
и HasUlid
.https://github.com/laravel/framework/pull/44074
👍123
В Laravel 9.31 команда
https://github.com/laravel/framework/pull/44211
dd
теперь показывает откуда она была вызвана.https://github.com/laravel/framework/pull/44211
👍284
Судя по количеству лайков, вам не особо интересно читать про выход новых версий Laravel. Оно и понятно — релизы стабильно выходят по средам, кому интересно — сам зайдёт на гитхаб. И возникает вопрос: нам продолжать публиковать еженедельные релизы?
Anonymous Poll
71%
Да
13%
Нет
17%
Всё равно…
👍114👎2
В свежих Laravel 9.32 и 8.83.24 исправлена потенциальная уязвимость логина перед атакой Timeless Timing Attack (новая атака по времени, когда по разнице времени ответов раскрывают существующих пользователей).
https://github.com/laravel/framework/pull/44069
https://github.com/laravel/framework/pull/44069
👍90👎1
Laravel Precognition — Tim MacDonald делает интересную штуку для Laravel 9.
Звучит, конечно громко: «Предвидение», но на деле удобная фича для быстрой проверки форм и контента.
https://github.com/laravel/docs/blob/890e72e3c8e6b0c7b6c6159b708de447dd6c50eb/precognition.md
Звучит, конечно громко: «Предвидение», но на деле удобная фича для быстрой проверки форм и контента.
https://github.com/laravel/docs/blob/890e72e3c8e6b0c7b6c6159b708de447dd6c50eb/precognition.md
👍65👎1