Laravel World

  1. Релиз Laravel 8.63

    Релиз Laravel 8.63
    https://github.com/laravel/framework/releases/tag/v8.63.0

    Обратите внимание на новый метод whereBelongsTo(), который автоматически определяет правильные отношения и внешний ключ для указанной модели:
    $posts = Post::whereBelongsTo($user)->get();
    
    https://laravel.com/docs/8.x/eloquent-relationships#querying-belongs-to-relationships

  2. Релиз Xdebug 3.1Добавлена поддержка PHP 8.1. Добавлены функции сжатия файлов для трассировки и профилирования. Новые функции xdebug_notify() и xdebug_connect_to_client() и xdebug_info().Полный список всех изменений:

    Релиз Xdebug 3.1
    Добавлена поддержка PHP 8.1. Добавлены функции сжатия файлов для трассировки и профилирования. Новые функции xdebug_notify() и xdebug_connect_to_client() и xdebug_info().
    Полный список всех изменений: https://xdebug.org/updates#x_3_1_0

  3. Начиная с этой недели, у новых Laravel-приложений в базовом классе TestCase будет трейт LazilyRefreshDatabase.И теперь вам больше не нужно использовать трейт RefreshDatabase в ваших тестах. Новый трейт будет «лениво» обновлять базу данных, когда тест в первый раз пытается к ней обратится.Существующие приложения могут по желанию добавить этот трейт в свой базовый тестовый класс.

    Начиная с этой недели, у новых Laravel-приложений в базовом классе TestCase будет трейт LazilyRefreshDatabase.

    И теперь вам больше не нужно использовать трейт RefreshDatabase в ваших тестах.

    Новый трейт будет «лениво» обновлять базу данных, когда тест в первый раз пытается к ней обратится.

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

  4. Ресурсы для API в LaravelВы узнаете, что такое Ресурсы и как их использовать для API в Laravel-приложениях.Ресурсы (Resources) — дополнительный слой поверх Eloquent-моделей. Они позволяют поддерживать единый формат возвращаемых данных. Плюс позволяют отсекать лишние или секретные данные, например, пароли и токены.

    Ресурсы для API в Laravel

    Вы узнаете, что такое Ресурсы и как их использовать для API в Laravel-приложениях.

    Ресурсы (Resources) — дополнительный слой поверх Eloquent-моделей. Они позволяют поддерживать единый формат возвращаемых данных. Плюс позволяют отсекать лишние или секретные данные, например, пароли и токены.

    https://laravel.demiart.ru/laravel-resources/

  5. Релиз Laravel 8.62Множество изменений, накопившихся за две недели.

    Релиз Laravel 8.62
    Множество изменений, накопившихся за две недели.
    https://github.com/laravel/framework/releases/tag/v8.62.0

    Из основного:

    — новый метод $request->collect() для получения данных из входящего запроса в виде коллекции.
    https://laravel.com/docs/8.x/requests#retrieving-input

    — анонимные index компоненты для сбора всех компонентов шаблона в одном каталоге.
    https://laravel.com/docs/8.x/blade#anonymous-index-components

    — резервные шаблоны 4xx.blade.php (ошибки клиента) и 5xx.blade.php (ошибки сервера) для серий кодов состояний HTTP, если не существует соответствующей страницы для определенного кода.
    https://laravel.com/docs/8.x/errors#fallback-http-error-pages

  6. Обнаружение проблем n+1 через лотерейный подход, то есть запускаем проверку не каждый раз, а с некоторым шансом. Также как сделана в Laravel очистка сессий.

    Обнаружение проблем n+1 через лотерейный подход, то есть запускаем проверку не каждый раз, а с некоторым шансом. Также как сделана в Laravel очистка сессий.
    https://timacdonald.me/introducing-lazy-loading-prevention-into-an-existing-laravel-application/ Introducing lazy loading prevention into an existing application by Tim MacDonald

  7. Проблемы управления текстами приложения

    Проблемы управления текстами приложения
    https://habr.com/ru/post/579904/ Разделение кода и текста: первая рабочая версия

  8. Похоже Тейлор сливает Lumen. На вопрос, стоит ли сегодня его использовать, он ответил отрицательно.Также он отметил, что Laravel и Lumen на Octane будут иметь примерно одинаковую скорость. Так как преимущество Lumen в скорости заключалось в меньших накладных расходах на начальную загрузку. А преимущество Octane — отсутствие накладных расходов на начальную загрузку.

    Похоже Тейлор сливает Lumen. На вопрос, стоит ли сегодня его использовать, он ответил отрицательно.

    Также он отметил, что Laravel и Lumen на Octane будут иметь примерно одинаковую скорость. Так как преимущество Lumen в скорости заключалось в меньших накладных расходах на начальную загрузку. А преимущество Octane — отсутствие накладных расходов на начальную загрузку.

  9. Наболело: что выбрать — Битрикс или Laravel? Мнение руководителя digital-компании Мы часто доказываем клиенту, что выбор распространенной в России системы 1С-Битрикс — плохая идея для больших и нестандартных проектов. Но есть задачи, которые он решает хорошо. Я решил изложить свою позицию в одной статье.Чаще всего нам поручают создание проектов с нестандартной логикой, стартапов, интегрированных решений и сайтов с высокой посещаемостью. Поэтому наша основная платформа для разработки — это связка из Vue.js на фронтенде и PHP-фреймворка Laravel на бэкенде. Наше «поэтому» часто оказывается неочевидным для заказчика. Значит, нужны пояснения.

    Наболело: что выбрать — Битрикс или Laravel? Мнение руководителя digital-компании

    Мы часто доказываем клиенту, что выбор распространенной в России системы 1С-Битрикс — плохая идея для больших и нестандартных проектов. Но есть задачи, которые он решает хорошо. Я решил изложить свою позицию в одной статье.

    Чаще всего нам поручают создание проектов с нестандартной логикой, стартапов, интегрированных решений и сайтов с высокой посещаемостью. Поэтому наша основная платформа для разработки — это связка из Vue.js на фронтенде и PHP-фреймворка Laravel на бэкенде. Наше «поэтому» часто оказывается неочевидным для заказчика. Значит, нужны пояснения.

    https://vc.ru/services/293486-nabolelo-chto-vybrat-bitriks-ili-laravel-mnenie-rukovoditelya-digital-kompanii Наболело: что выбрать — Битрикс или Laravel? Мнение руководителя digital-компании — Сервисы на vc.ru

  10. Не обязательно регистрировать мидлварСовет дняЕсли у вас есть мидлвар, который нужно применить к определенному маршруту, то вы можете передать его прямо в маршрут без регистрации в кернел-файле.

    Не обязательно регистрировать мидлвар
    Совет дня
    Если у вас есть мидлвар, который нужно применить к определенному маршруту, то вы можете передать его прямо в маршрут без регистрации в кернел-файле.

  11. Использование макросов Laravel - мощный способ расширить дефолтное поведение основных классов в Laravel, таких как Collections, Stringables и Reponses. В этой статье рассказывается, как эти макросы работают под капотом.

    Использование макросов Laravel - мощный способ расширить дефолтное поведение основных классов в Laravel, таких как Collections, Stringables и Reponses. В этой статье рассказывается, как эти макросы работают под капотом.
    https://www.jeroenvanrensen.nl/blog/laravel-macros

  12. Как лимитировать количество результатов в Eloquent-запросе с помощью метода limit() и как сделать пагинацию с помощью метода simplePaginate().

    Как лимитировать количество результатов в Eloquent-запросе с помощью метода limit() и как сделать пагинацию с помощью метода simplePaginate().
    https://www.digitalocean.com/community/tutorials/how-to-limit-and-paginate-query-results-in-laravel-eloquent

  13. Обычно в блогах идентификатор и слаг являются частью URL-адресов сообщений. Например, hello-world.test/blog/1/foo. По некоторым причинам иногда приходится изменять заголовок, что весьма проблематично, если вы уже поделились своим сообщением в социальных сетях, поскольку URL-адрес будет поврежден. Расскажу как решить эту проблему.

    Обычно в блогах идентификатор и слаг являются частью URL-адресов сообщений. Например, hello-world.test/blog/1/foo. По некоторым причинам иногда приходится изменять заголовок, что весьма проблематично, если вы уже поделились своим сообщением в социальных сетях, поскольку URL-адрес будет поврежден. Расскажу как решить эту проблему.
    https://benjamincrozat.com/en/blog/hXD0b8/how-to-make-unbreakable-urls-laravel-project

  14. Symfony Mailer официально заменил SwiftMailer в грядущем Laravel 9Но есть несколько критических изменений, подробнее о них в блоке «Breaking changes», по ссылке:

    Symfony Mailer официально заменил SwiftMailer в грядущем Laravel 9
    Но есть несколько критических изменений, подробнее о них в блоке «Breaking changes», по ссылке:
    https://github.com/laravel/framework/pull/38481

  15. Рефакторинг функции обратного вызоваСовет дня от Povilas KoropЕсли используете один и тот же колбэк несколько раз, то вынесите его в отдельную переменную. Даже если используете его всего один раз — вынесите для лучшей читаемости кода.

    Рефакторинг функции обратного вызова
    Совет дня от Povilas Korop
    Если используете один и тот же колбэк несколько раз, то вынесите его в отдельную переменную. Даже если используете его всего один раз — вынесите для лучшей читаемости кода.

  16. Livewire: v2.6 Вышла новая версия, содержащая огромное количество нововведений. Автор пакета, Caleb Porzio, всё подробно расписал в отдельной статье

    Livewire: v2.6
    Вышла новая версия, содержащая огромное количество нововведений. Автор пакета, Caleb Porzio, всё подробно расписал в отдельной статье
    https://laravel-news.com/livewire-v2-6-0 Big New Livewire Release: v2.6.0