Laravel World
8.47K subscribers
1.25K photos
25 videos
9 files
2.08K links
Laravel & PHP news
Download Telegram
PHP Дайджест — Август 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
👍56👎9
Три способа отправки письма каждому пользователю с помощью Laravel-очередей
👍102
Релиз 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
👍161
В новом релизе Laravel теперь можно переводить дефолтные сообщение валидации «The given data was invalid.» и « (and 1 more error)». Казалось бы ерунда, но на протяжении минимум пары лет Тейлор категорически отвергал десятки пул-реквестов на их локализацию. И, внезапно, нашему Андрею @Helldar удалось убедить хозяина фреймворка внести это изменение. Пишу об этом, потому что команда разработки решила не указывать это в changelog'e.

Кстати, Андрей, как и множество других прекрасных программистов, живёт и помогает новичкам в нашем дружелюбном Laravel-чате https://t.me/laravel_web
👍104
Мадуро разрабатывает новую фичу для Laravel 9 — Signal Trap (ловушка сигналов как в bash), которая позволит перехватывать сигналы процесса и выполнять нужный код при их перехвате.

На скриншоте видно, что artisan-команда экспортирует в файл некие данные. И поставлена ловушка на сигнал SIGTERM (завершение процесса), которая при срабатывании поставит экспорт на паузу и выбросит исключение.

Впрочем уже существует пакет spatie/laravel-signal-aware-commands, который также позволяет работать с сигналами в Laravel-приложениях.
👍44👎2
Работаем с событиями Laravel-моделей

При работе с Eloquent-моделями часто возникает необходимость использовать события, генерируемые в процессе жизненного цикла моделей. Существует несколько различных способов сделать это. В этом уроке я рассмотрю их все и объясню преимущества и недостатки каждого.

https://laravel.demiart.ru/working-with-laravel-model-events/
👍38
Логотип Laravel Nova в стиле black metal
by David Hemphill (разработчик панели)
👎121👍42
Шпаргалка по планировщику задач
👍79
Learning Laravel: Assets and Authentication
Урок для начинаюших от Tighten про ресурсы и аутентификацию
https://tighten.com/blog/learning-laravel-assets-authentication/
👍26
Полное погружение в Laravel-очереди

Объёмная статья, позволяющая полностью разобраться как асинхронно выполнять задачи с помощью очередей и воркеров.

https://www.honeybadger.io/blog/laravel-queues-deep-dive/
👍72
Как быстро сделать логирование SQL-запросов в Laravel
👍199👎10
С помощью blade-директивs @inject можно получить сервис из cервис-контейнера Laravel. Первый параметр — имя переменной, в которую будет помещен сервис. Второй — название класса или интерфейса сервиса, который вы хотите извлечь.
👍109👎19
В Laravel 9.31 будет возможность использовать UUID и ULID в качестве первичных ключей для Eloquent-моделей с помощью трейтов HasUuid и HasUlid.

https://github.com/laravel/framework/pull/44074
👍123
При использовании «сырых» запросов не забывайте передавать в него параметры через привязку. Это защитит от SQL-инъекций.
👍158👎2
В Laravel 9.31 команда 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
👍90👎1
Laravel Precognition — Tim MacDonald делает интересную штуку для Laravel 9.
Звучит, конечно громко: «Предвидение», но на деле удобная фича для быстрой проверки форм и контента.

https://github.com/laravel/docs/blob/890e72e3c8e6b0c7b6c6159b708de447dd6c50eb/precognition.md
👍65👎1