Laravel World

  1. Что нового в Eloquent ORM

    Что нового в Eloquent ORM

    Рассмотрим новый функционал, появившийся в Laravel с момента первоначального релиза версии 8. Сегодня поговорим о новых методах в Database и Eloquent. Пройдемся прямо по каждой версии, в которых появлялось что-то новое.

    https://laravel.demiart.ru/eloquent-new-features/

  2. Релиз Laravel 8.73

    Релиз Laravel 8.73

    • Implement lazyById in descending order
    • Fix assertSoftDeleted & assertNotSoftDeleted
    • Added Prohibits validation rule to dependentRules property
    • Allow a Closure to be passed as a ttl in Cache remember() method

    Релиз Laravel 8.72
    • Allow users to specify options for migrate:fresh for DatabaseMigration trait
    • Add support for countables to the pluralizer
    • Use parents to resolve middleware priority
    • Add extra method in PasswortReset for reset URL to match the structure of VerifyEmail

    https://github.com/laravel/framework GitHub - laravel/framework: Laravel is a web application framework with expressive, elegant syntax.

  3. Сравнение php-fpm, nginx-unit и laravel-octane

    Сравнение php-fpm, nginx-unit и laravel-octane

    Статья посвящена сравнению производительности различных веб-серверов для приложения, построенного на базе Laravel. Ниже будет много графиков и параметров конфигурации и мои личные выводы.

    Сам я давно работаю с nginx-unit (+lumen), однако при получении новых проектов очень часто вижу использование php-fpm. На предложения перейти на nginx-unit, возникает вполне логичный вопрос — «а чем он лучше?».

    https://habr.com/ru/post/588785/ Сравнение php-fpm, nginx-unit и laravel-octane

  4. Релиз Laravel 8.70

    Релиз Laravel 8.70

    Метод can() мидлваров в маршрутах:
    Route::put('/post/{post}', function (Post $post) {
        // The current user may update the post...
    })->can('update', 'post');
    
    https://laravel.com/docs/8.x/authorization#via-middleware

    Правило валидации Enum (PHP 8.1+)
    $request->validate([
        'status' => [new Enum(ServerStatus::class)],
    ]);
    
    https://laravel.com/docs/8.x/validation#rule-enum

    Метод Js::from() для вывода json
    <script>
        var app = {{ Js::from($array) }};
    </script>
    
    https://laravel.com/docs/8.x/blade#rendering-json

    Метод withoutMiddleware для группы маршрутов
    Route::withoutMiddleware([EnsureTokenIsValid::class])->group(function () {
        Route::get('/profile', function () {
            //
        });
    });
    
    https://laravel.com/docs/8.x/middleware#excluding-middleware

    Флаг --requests при создании моделей через artisan-команду. Позволяет создать форм-реквесты Store{Model}Request и Update{Model}Request и обновляет контроллер для их использования в соответствующих методах.

  5. Тейлор работает над возможностью устанавливать Laravel чисто как API-бэкенд (Lumen, досвидос), с удалением всего, что связано с работой в браузере. Вот план его работ. Если вам есть, что добавить — пишите ему в твит:

    Тейлор работает над возможностью устанавливать Laravel чисто как API-бэкенд (Lumen, досвидос), с удалением всего, что связано с работой в браузере. Вот план его работ. Если вам есть, что добавить — пишите ему в твит:
    https://twitter.com/taylorotwell/status/1457829364163387392

  6. Паттерн Action-Domain-Responder

    Паттерн Action-Domain-Responder

    Является усовершенствованием паттерна Model-View-Controller и более удобен для создания веб-приложений.

    Большинство фреймворков на данный момент использует MVC. Впервые он был представлен в 70-х годах и предназначался для разработки десктопных приложений. Несмотря на это, в течении долгого времени, паттерн используется и для веб-приложений.

    В этой статье мы познакомимся с паттерном Action-Domain-Responder (ADR — Действие-Домен-Ответчик) и научимся его применять в Laravel.

    https://laravel.demiart.ru/pattern-action-domain-responder/

  7. Пример качественного Laravel приложения

    Пример качественного Laravel приложения
    от Алексея Мезенина
    https://github.com/alexeymezenin/laravel-realworld-example-app

    Автор известен по крайне полезному проекту Laravel Best Practices.

    «Высасывать идею для приложения из пальца не стал, решил присоединиться к довольно интересному проекту RealWorld. Проект состоит из сотни приложений, написанных на самых разных языках и фреймворках, причем вы можете менять фронтенд и бэкенд и получить точно такой же функционал. Мой пример следует лучшим практикам, но сделать все согласно Laravel Way не получилось из-за довольно специфичного ТЗ. Буду благодарен за звезды. Если у вас есть вопросы по поводу организации кода, практик, решений и пр., задавайте.» GitHub - alexeymezenin/laravel-realworld-example-app: Laravel implementation of the RealWorld app

  8. Релиз PHPStan 1.0

    Релиз PHPStan 1.0
    Статический анализатор PHP, ориентированный на поиск ошибок в вашем коде, без его запуска. Спустя 5 лет разработки и множество 0.xx версий, автор наконец-то решился выпустить Первую версию.
    Основная фишка релиза — добавлен максимальный девятый уровень строгости проверки.
    https://phpstan.org/blog/phpstan-1-0-released

    Заодно с ним зарелизился Larastan 1.0.0 — обёртка над PHPStan для Laravel. PHPStan 1.0 Released!

  9. На следующей неделе в Laravel 8 появится приведение атрибутов к enum. Но будет работать, разумеется, только начиная с PHP 8.1, в котором и появилась их реализация.

    На следующей неделе в Laravel 8 появится приведение атрибутов к enum. Но будет работать, разумеется, только начиная с PHP 8.1, в котором и появилась их реализация.

    Кстати, начиная с версии 8.67, вышедшей на днях, фреймворк полностью работоспособен на PHP 8.1

  10. Релиз Laravel 8.68

    Релиз Laravel 8.68
    Из интересного: методы dump, dumpHeaders, dumpSession и dd, ddHeaders, ddSession оптимизированы для отладки тестовых ответов.
    Также теперь не обязательно указывать модель в Фабрике . В большинстве случаев Laravel понимает, что нужно использовать.
    https://laravel.com/docs/8.x/http-tests#debugging-responses

  11. Новый пакет от Spatie: Laravel Site Search

    Новый пакет от Spatie: Laravel Site Search
    Индексация контента сайта и поиск по нему.
    https://freek.dev/2106-a-laravel-package-to-crawl-and-index-content-of-your-sites A Laravel package to crawl and index content of your sites | freek.dev

  12. Релиз Laravel 8.65

    Релиз Laravel 8.65

    Из интересного: новый метод Str::headline() для вывода красивых заголовков из слагов, названий классов и тому подобного. Примеры на картинке.

    также зарелизены:
    Laravel 6.20.36
    Cashier Stripe 13.5.5
    Dusk 6.19.1
    Lumen 8.3.1
    Passport 10.1.4
    Sanctum 2.12

  13. На следующей неделе выйдет версия Laravel, в которой будет возможность, в команде artisan make использовать опции --test или --pest для генерации, соответственно, phpunit и pestphp тестов.

    На следующей неделе выйдет версия Laravel, в которой будет возможность, в команде artisan make использовать опции --test или --pest для генерации, соответственно, phpunit и pestphp тестов.
    https://github.com/laravel/framework/pull/38997