Laravel World

  1. JetBrains основывают фонд PHP. Тейлор уже стал топ-спонсором - перечислил 10 тысяч долларов.

    JetBrains основывают фонд PHP. Тейлор уже стал топ-спонсором - перечислил 10 тысяч долларов.
    https://blog.jetbrains.com/phpstorm/2021/11/the-php-foundation/ The New Life of PHP – The PHP Foundation - The JetBrains Blog

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

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

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

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

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

  4. Сравнение 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

  5. Релиз 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 и обновляет контроллер для их использования в соответствующих методах.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  11. Релиз Laravel 8.68

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