- Выход нового Laravel 10.15
- Посекундное выполнение задач в Laravel 10.15
- В конструкторы запросов Laravel добавлены методы Raw SQL
- Поддержка Laravel встроенных вложений для "уведомлений" в формате markdown
- Метод
DB::getRawQueryLog()
в Laravel - Строковый метод
isUrl()
в Laravel - Разрешение на вызов HTTP-исключений во вьюхах Laravel
- Примечания к выпуску Laravel v10.15.0
Выход нового Laravel 10.15
Команда разработчиков Laravel сообщила об обновлении версии 10.15, в которой появились функции посекундного расписания выполнения задач, методы построения необработанных SQL-запросов, возможность создания исключения HTTP из view и многое другое.
Посекундное выполнение задач в Laravel 10.15
Джесс Арчер внес вклад в разработку Sub-minute Scheduling, который предоставляет новые возможности частоты при планировании заданий:
$schedule->job(new ExampleJob)->everySecond();
$schedule->job(new ExampleJob)->everyTwoSeconds();
$schedule->job(new ExampleJob)->everyFiveSeconds();
$schedule->job(new ExampleJob)->everyTenSeconds();
$schedule->job(new ExampleJob)->everyFifteenSeconds();
$schedule->job(new ExampleJob)->everyTwentySeconds();
$schedule->job(new ExampleJob)->everyThirtySeconds();
Ранее предлагалась максимальная частота - каждую минуту без использования пакета сообщества. Это замечательное дополнение для тех, кому необходимо запускать задачи по расписанию с большей частотой. Подробности, предостережения и обсуждение этой возможности смотрите в Pull Request #47279!
В конструкторы запросов Laravel добавлены методы Raw SQL
Ранее сообщалось, что в Laravel 10 появится функция вывода необработанного SQL со связями (Raw Query Output With Bindings), которая была выпущена в версии 10.15! Tobias Petry предоставил эту возможность, которая включает в себя три метода, позволяющие получить необработанный SQL с привязками в конструкторе запросов:
$query->ddRawSql(); // Вывод SQL-строки через dd()
$query->dumpRawSql(); // Вывод SQL-строки через dump()
$query->toRawSql(); // Вывод необработанной sql-строки
Поддержка Laravel встроенных вложений для "уведомлений" в формате markdown
Nuno Maduro внес вклад в поддержку встроенных вложений в пометках уведомлений. Подробности см. в Pull Request #47643 и Pull Request #47603.
Метод DB::getRawQueryLog()
в Laravel
@Fuwasegu предоставил метод getRawQueryLog()
, который работает аналогично DB::getQueryLog()
:
DB::enableQueryLog();
// ... выполнение запросов
$logs = DB::getRawQueryLog();
/*
[
[
"raw_query" => "select * from "users" where "id" in (3, 6, 8)"
"time" => 4.06
]
]
*/
Строковый метод isUrl()
в Laravel
Graham Campbell предоставил метод isUrl()
для проверки того, является ли строка действительным url. Он использует логику метода валидатора validateUrl()
, который теперь вызывает новый метод:
use Illuminate\Support\Str;
Str::isUrl('https://example.com'); // true
Str::isUrl('ms-officeapp://launchapp'); // true
Str::isUrl('invalid://launchapp'); // false
Str::isUrl('//example.com'); // false
Разрешение на вызов HTTP-исключений во вьюхах Laravel
Nuno Maduro ещё добавил возможность бросать HTTP-исключения из представлений:
@php
if (! Gate::check('view-books')) {
abort(403);
}
$books = auth()->user()->books;
@endphp
@foreach ($books as $book)
<div>
{{ $book->title }}
</div>
@endforeach
Примечания к выпуску Laravel v10.15.0
Полный список новых возможностей и обновлений Laravel приведен ниже, а разница между версиями 10.14.0 и 10.15.0 размещена на GitHub. Следующие примечания к выпуску взяты непосредственно из журнала изменений:
- [10.x] Изменение типа возврата
getPrivateToken
в AblyBroadcaster. Автор @milwad-dev в https://github.com/laravel/framework/pull/47602 - [10.x] Добавление
toRawSql
,dumpRawSql()
иddRawSql()
в Query Builders. Автор @tpetry в https://github.com/laravel/framework/pull/47507 - [10.x] Исправление того, что
recorderHandler
не записывал изменения, сделанные промежуточным ПО. Автор @j3j5 в https://github.com/laravel/framework/pull/47614 - Передача очереди из
Mailable
в заданиеSendQueuedMailable
. Автор @Tarpsvo в https://github.com/laravel/framework/pull/47612 - [10.x] Посекундное расписание выполнения задач. Автор @jessarcher в https://github.com/laravel/framework/pull/47279
- [10.x] Исправление неудачных тестов, работающих на DynamoDB Local 2.0.0. Автор @crynobone в https://github.com/laravel/framework/pull/47653
- [10.x] Разрешение обратного вызова сброса пароля для изменения результата. Автор @GrahamCampbell в https://github.com/laravel/framework/pull/47641
- Забыть о коллекциях. Автор @joelbutcher в https://github.com/laravel/framework/pull/47637
- [10.x] Не применять глобальные диапазоны при увеличении/уменьшении существующей модели. Автор @cosmastech в https://github.com/laravel/framework/pull/47629
- [10.x] Добавлена поддержка встроенных вложений для почтовых файлов с пометкой "notifications". Автор @nunomaduro в https://github.com/laravel/framework/pull/47643
- Использование ассоциаций для подсчета исходящих почтовых отправлений. Автор @jasonmccreary в https://github.com/laravel/framework/pull/47655
- [10.x] Добавление метода
getRawQueryLog()
. Автор @fuwasegu в https://github.com/laravel/framework/pull/47623 - [10.x] Исправление типа возврата
Storage::cloud()
. Автор @tattali в https://github.com/laravel/framework/pull/47664 - [10.x] Добавление
isUrl
в классStr
и использование его из валидатора. Автор @GrahamCampbell в https://github.com/laravel/framework/pull/47688 - [10.x] Удаление ненужного вызова для включения трассировки стека. Автор @HazzazBinFaiz в https://github.com/laravel/framework/pull/47687
- [10.x] Добиться того, чтобы
Vite
выбрасывал новое исключениеManifestNotFoundException
. Автор @innocenzi в https://github.com/laravel/framework/pull/47681 - [10.x] Переместить класс из файловой логики в ядре консоли в специальный метод. Автор @CalebDW в https://github.com/laravel/framework/pull/47665
- [10.x] Обрезка событий начала и окончания работы модели диспетчеризации. Автор @ziadoz в https://github.com/laravel/framework/pull/47669
- [10.x] Обновление
DatabaseRule
для обработкиEnums
для простого выраженияwhere
. Автор @CalebDW в https://github.com/laravel/framework/pull/47679 - [10.x] Добавление помощника
data_forget
. Автор @PhiloNL в https://github.com/laravel/framework/pull/47618 - [10.x] Дополнительные тесты для
isUrl
кStr
. Автор @michaelnabil230 в https://github.com/laravel/framework/pull/47690 - [10.x] Дополнение
isUrl
к строковой версииStringable
. Автор @michaelnabil230 в https://github.com/laravel/framework/pull/47689 - [10.x] Исправление типа возврата для отсутствующего конфига. Автор @sfreytag в https://github.com/laravel/framework/pull/47702
- [10.x] Исправление параллельного тестирования без подключения к базе данных. Автор @deleugpn в https://github.com/laravel/framework/pull/47705
- [10.x] Улучшения в тестировании. Автор @crynobone в https://github.com/laravel/framework/pull/47709
- [10.x] Возможность создания исключений HTTP для представлений. Автор @nunomaduro в https://github.com/laravel/framework/pull/47714
Перевод с английского официальных новостей Laravel:
https://laravel-news.com/laravel-10-15-0
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)