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

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

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

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

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

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

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

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

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

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

  4. Релиз 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

  5. Обнаружение проблем 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

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

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

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

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

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

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

    Наболело: что выбрать — Битрикс или 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

  9. Не обязательно регистрировать мидлвар

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

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

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

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

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

  12. Обычно в блогах идентификатор и слаг являются частью 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

  13. Рефакторинг функции обратного вызова

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