Laravel World

  1. Laravel Precognition — Tim MacDonald делает интересную штуку для Laravel 9.Звучит, конечно громко: «Предвидение», но на деле удобная фича для быстрой проверки форм и контента.

    Laravel Precognition — Tim MacDonald делает интересную штуку для Laravel 9.
    Звучит, конечно громко: «Предвидение», но на деле удобная фича для быстрой проверки форм и контента.

    https://github.com/laravel/docs/blob/890e72e3c8e6b0c7b6c6159b708de447dd6c50eb/precognition.md

    • 👍65
    • 👎1
  2. В свежих Laravel 9.32 и 8.83.24 исправлена потенциальная уязвимость логина перед атакой Timeless Timing Attack (новая атака по времени, когда по разнице времени ответов раскрывают существующих пользователей).

    В свежих Laravel 9.32 и 8.83.24 исправлена потенциальная уязвимость логина перед атакой Timeless Timing Attack (новая атака по времени, когда по разнице времени ответов раскрывают существующих пользователей).

    https://github.com/laravel/framework/pull/44069

    • 👍90
    • 👎1
  3. Судя по количеству лайков, вам не особо интересно читать про выход новых версий Laravel. Оно и понятно — релизы стабильно выходят по средам, кому интересно — сам зайдёт на гитхаб. И возникает вопрос: нам продолжать публиковать еженедельные релизы?
    Anonymous Poll
    71%
    Да
    13%
    Нет
    17%
    Всё равно…

    • 👍114
    • 👎2
  4. При использовании «сырых» запросов не забывайте передавать в него параметры через привязку. Это защитит от SQL-инъекций.

    При использовании «сырых» запросов не забывайте передавать в него параметры через привязку. Это защитит от SQL-инъекций.

    • 👍158
    • 👎2
  5. В Laravel 9.31 будет возможность использовать UUID и ULID в качестве первичных ключей для Eloquent-моделей с помощью трейтов HasUuid и HasUlid.

    В Laravel 9.31 будет возможность использовать UUID и ULID в качестве первичных ключей для Eloquent-моделей с помощью трейтов HasUuid и HasUlid.

    https://github.com/laravel/framework/pull/44074

    • 👍123
  6. С помощью blade-директивs @inject можно получить сервис из cервис-контейнера Laravel. Первый параметр — имя переменной, в которую будет помещен сервис. Второй — название класса или интерфейса сервиса, который вы хотите извлечь.

    С помощью blade-директивs @inject можно получить сервис из cервис-контейнера Laravel. Первый параметр — имя переменной, в которую будет помещен сервис. Второй — название класса или интерфейса сервиса, который вы хотите извлечь.

    • 👍109
    • 👎19
  7. Полное погружение в Laravel-очередиОбъёмная статья, позволяющая полностью разобраться как асинхронно выполнять задачи с помощью очередей и воркеров.

    Полное погружение в Laravel-очереди

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

    https://www.honeybadger.io/blog/laravel-queues-deep-dive/

    • 👍72
  8. Релиз Laravel 9.28

    Релиз Laravel 9.28
    https://github.com/laravel/framework/releases/tag/v9.28.0

    Из значимых фишек - добавлены Signal Traps, о которых мы писали ранее. Release v9.28.0 · laravel/framework

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

    Работаем с событиями Laravel-моделей

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

    https://laravel.demiart.ru/working-with-laravel-model-events/

    • 👍38
  10. Мадуро разрабатывает новую фичу для Laravel 9 — Signal Trap (ловушка сигналов как в bash), которая позволит перехватывать сигналы процесса и выполнять нужный код при их перехвате.На скриншоте видно, что artisan-команда экспортирует в файл некие данные. И поставлена ловушка на сигнал SIGTERM (завершение процесса), которая при срабатывании поставит экспорт на паузу и выбросит исключение.Впрочем уже существует пакет spatie/laravel-signal-aware-commands, который также позволяет работать с сигналами в Laravel-приложениях.

    Мадуро разрабатывает новую фичу для Laravel 9 — Signal Trap (ловушка сигналов как в bash), которая позволит перехватывать сигналы процесса и выполнять нужный код при их перехвате.

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

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

    • 👍44
    • 👎2
  11. В новом релизе Laravel теперь можно переводить дефолтные сообщение валидации «The given data was invalid.» и « (and 1 more error)». Казалось бы ерунда, но на протяжении минимум пары лет Тейлор категорически отвергал десятки пул-реквестов на их локализацию. И, внезапно, нашему Андрею @Helldar удалось убедить хозяина фреймворка внести это изменение. Пишу об этом, потому что команда разработки решила не указывать это в changelog'e. Кстати, Андрей, как и множество других прекрасных программистов, живёт и помогает новичкам в нашем дружелюбном Laravel-чате

    В новом релизе Laravel теперь можно переводить дефолтные сообщение валидации «The given data was invalid.» и « (and 1 more error)». Казалось бы ерунда, но на протяжении минимум пары лет Тейлор категорически отвергал десятки пул-реквестов на их локализацию. И, внезапно, нашему Андрею @Helldar удалось убедить хозяина фреймворка внести это изменение. Пишу об этом, потому что команда разработки решила не указывать это в changelog'e.

    Кстати, Андрей, как и множество других прекрасных программистов, живёт и помогает новичкам в нашем дружелюбном Laravel-чате https://t.me/laravel_web

    • 👍104
  12. Тейлор поделился планами убрать из документации пакеты 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 на основе токенов.

    Тейлор поделился планами убрать из документации пакеты 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