Laravel World

  1. Laravel 9 — Что нового?

    Laravel 9 — Что нового?

    Новая версия фреймворка выйдет 8 февраля 2022 года и будет являться LTS (релиз с долгосрочной поддержкой), то есть основная поддержка будет осуществляться в течении 2 лет, а поддержка безопасности в течении 3 лет.

    Релиз содержит следующие нововведения и улучшения: поддержка компонентов Symfony 6, Symfony Mailer, Flysystem 3, улучшенный вывод route:list, драйвера Laravel Scout, новый синтаксис аксессор/мутатор Eloquent и различных других исправлений ошибок и улучшений удобства использования.

    Рассмотрим подробнее каждое нововведение:
    https://laravel.demiart.ru/laravel-9-whats-new/

    • 👍83
    • 👎1
  2. Релиз Laravel 8.80

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

    Из интересного:

    — Возможность указывать общий Контроллер для группы маршрутов:
    Route::controller(OrderController::class)->group(function () {
      Route::get('/orders/{id}', 'show');
      Route::post('/orders', 'store');
    });
    
    
    —Новый метод сортировки ключей по колбэку sortKeysUsing():
    $sorted = $collection->sortKeysUsing('strnatcasecmp');
    
    
    — Метод Blade::render() для рендера строк:
    Blade::render('Hello, {{ $name }}', ['name' => 'Claire']);
    // Returns 'Hello, Claire'
    
    Blade::render('@if($foo) Foo @else Bar @endif', ['foo' => true]);
    // Returns 'Foo '

    • 👍64
  3. Вышла обновленная версия Ignition, которая будет дефолтной страницей ошибок в Laravel 9. Но вы можете уже сейчас установить её для своих проектов на Laravel 8.

    Вышла обновленная версия Ignition, которая будет дефолтной страницей ошибок в Laravel 9. Но вы можете уже сейчас установить её для своих проектов на Laravel 8.
    https://freek.dev/2168-ignition-the-most-beautiful-error-page-for-laravel-and-php-got-a-major-redesign

    • 👍21
  4. В Laravel 8.79 добавят полнотекстовой поиск для MySQL и PostgreSQL. Разумеется предварительно нужно создать соответствующие индексы.

    В Laravel 8.79 добавят полнотекстовой поиск для MySQL и PostgreSQL. Разумеется предварительно нужно создать соответствующие индексы.

    • 👍107
  5. В Laravel есть несколько интересных скрытых трейтов. Например Conditionable, который позволяет использовать методы when и unless в вашем классе. Методы принимают value, callback и default.

    В Laravel есть несколько интересных скрытых трейтов. Например Conditionable, который позволяет использовать методы when и unless в вашем классе. Методы принимают value, callback и default.
    Когда условие when истинно, то будет запущен коллбек и возвращён его результат. Если ложь — то вернёт $this или дефолтное значение, если оно указано.

    • 👍100
    • 👎3
  6. Конструктор запросов имеет метод explain(), который позволяет мгновенно получить план выполнения запроса. Полезно при отладке медленных запросов.

    Конструктор запросов имеет метод explain(), который позволяет мгновенно получить план выполнения запроса. Полезно при отладке медленных запросов.

    • 👍121
  7. Если вам нужно промаппить постраничные данные, то используйте метод through, а не map. Map удалит экземпляр пагинации и вернёт коллекцию, в то

    Если вам нужно промаппить постраничные данные, то используйте метод through, а не map. Map удалит экземпляр пагинации и вернёт коллекцию, в то
    время как through работает с самими данными.

    • 👍16
  8. В настоящее время аксессоры и мутаторы добавляются к модели путем определения методов get{Foo}Attribute и set{Foo}Attribute на модели. Эти условно названные методы затем используются, когда разработчики пытаются получить доступ к свойству $model->foo на модели.

    В настоящее время аксессоры и мутаторы добавляются к модели путем определения методов get{Foo}Attribute и set{Foo}Attribute на модели. Эти условно названные методы затем используются, когда разработчики пытаются получить доступ к свойству $model->foo на модели.

    Новый способ определения поведения доступа к атрибутам / мутации в одном методе, отмеченном типом возврата Illuminate\Database\Eloquent\Casts\Attribute. В сочетании с “именованными аргументами” PHP 8+, это позволит разработчикам определять поведение доступа и мутации в одном методе с беглым, современным синтаксисом, возвращая экземпляр Illuminate\Database\Eloquent\Casts\Attribute.

    https://medium.com/@volodymyrafanasiev/новый-способ-записи-гетеров-и-сеттеров-в-laravel-9-2407d248c44f