Laravel World
8.46K subscribers
1.26K photos
25 videos
9 files
2.09K links
Laravel & PHP news
Download Telegram
Как лимитировать количество результатов в Eloquent-запросе с помощью метода limit() и как сделать пагинацию с помощью метода simplePaginate().
https://www.digitalocean.com/community/tutorials/how-to-limit-and-paginate-query-results-in-laravel-eloquent
Использование макросов Laravel - мощный способ расширить дефолтное поведение основных классов в Laravel, таких как Collections, Stringables и Reponses. В этой статье рассказывается, как эти макросы работают под капотом.
https://www.jeroenvanrensen.nl/blog/laravel-macros
Не обязательно регистрировать мидлвар
Совет дня
Если у вас есть мидлвар, который нужно применить к определенному маршруту, то вы можете передать его прямо в маршрут без регистрации в кернел-файле.
Наболело: что выбрать — Битрикс или Laravel? Мнение руководителя digital-компании

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

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

https://vc.ru/services/293486-nabolelo-chto-vybrat-bitriks-ili-laravel-mnenie-rukovoditelya-digital-kompanii
Похоже Тейлор сливает Lumen. На вопрос, стоит ли сегодня его использовать, он ответил отрицательно.

Также он отметил, что Laravel и Lumen на Octane будут иметь примерно одинаковую скорость. Так как преимущество Lumen в скорости заключалось в меньших накладных расходах на начальную загрузку. А преимущество Octane — отсутствие накладных расходов на начальную загрузку.
Обнаружение проблем n+1 через лотерейный подход, то есть запускаем проверку не каждый раз, а с некоторым шансом. Также как сделана в Laravel очистка сессий.
https://timacdonald.me/introducing-lazy-loading-prevention-into-an-existing-laravel-application/
Релиз 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
Ресурсы для API в Laravel

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

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

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

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

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

Существующие приложения могут по желанию добавить этот трейт в свой базовый тестовый класс.
Релиз Xdebug 3.1
Добавлена поддержка PHP 8.1. Добавлены функции сжатия файлов для трассировки и профилирования. Новые функции xdebug_notify() и xdebug_connect_to_client() и xdebug_info().
Полный список всех изменений: https://xdebug.org/updates#x_3_1_0
Релиз 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
Еще небольшое разъяснение от Дэна Харрина, автора нового метода whereBelongsTo() в Laravel 8.63, как его можно использовать:
Совет дня от Anwar
Метод Route::is('route-name') легко подсветит активную вкладку в вашей навигационной панели
Либо используйте blade-директиву class из восьмой версии Laravel
Релиз Laravel 8.64
https://github.com/laravel/framework/releases/tag/v8.64.0

Новая blade-директива aware для доступа из дочернего компонента к данным родительского
https://laravel.com/docs/8.x/blade#accessing-parent-data
А вы знали, что в DateTime можно использовать восклицательный знак для сброса неуказанных единиц времени? 😲
На следующей неделе выйдет версия Laravel, в которой будет возможность, в команде artisan make использовать опции --test или --pest для генерации, соответственно, phpunit и pestphp тестов.
https://github.com/laravel/framework/pull/38997
Релиз 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