diff --git a/helpers.md b/helpers.md
index 5d3ec73..3d594cc 100644
--- a/helpers.md
+++ b/helpers.md
@@ -1,5 +1,5 @@
---
-git: bb4650831ec4567c07d72f7a9949a95f90c04035
+git: 8f1a3d074d960178fc00bc91760324336e898822
---
# Глобальные помощники (helpers)
@@ -75,6 +75,8 @@ Laravel содержит множество глобальных «вспомо
- [Number::abbreviate](#method-number-abbreviate)
- [Number::clamp](#method-number-clamp)
- [Number::currency](#method-number-currency)
+- [Number::defaultCurrency](#method-default-currency)
+- [Number::defaultLocale](#method-default-locale)
- [Number::fileSize](#method-number-file-size)
- [Number::forHumans](#method-number-for-humans)
- [Number::format](#method-number-format)
@@ -85,6 +87,8 @@ Laravel содержит множество глобальных «вспомо
- [Number::trim](#method-number-trim)
- [Number::useLocale](#method-number-use-locale)
- [Number::withLocale](#method-number-with-locale)
+- [Number::useCurrency](#method-number-use-currency)
+- [Number::withCurrency](#method-number-with-currency)
@@ -181,6 +185,7 @@ Laravel содержит множество глобальных «вспомо
- [value](#method-value)
- [view](#method-view)
- [with](#method-with)
+- [when](#method-when)
@@ -1213,6 +1218,28 @@ $classes = Arr::toCssStyles($array);
// 1.000,00 €
+
+#### `Number::defaultCurrency()`
+
+Метод `Number::defaultCurrency` возвращает валюту по умолчанию, используемую классом `Number`:
+
+ use Illuminate\Support\Number;
+
+ $currency = Number::defaultCurrency();
+
+ // USD
+
+
+#### `Number::defaultLocale()`
+
+Метод `Number::defaultLocale` возвращает локаль по умолчанию, используемую классом `Number`:
+
+ use Illuminate\Support\Number;
+
+ $locale = Number::defaultLocale();
+
+ // en
+
#### `Number::fileSize()`
@@ -1409,6 +1436,32 @@ $result = Number::pairs(25, 10, offset: 0);
return Number::format(1500);
});
+
+#### `Number::useCurrency()`
+
+Метод `Number::useCurrency` устанавливает глобальную числовую валюту по умолчанию, что влияет на форматирование валюты при последующих вызовах методов класса `Number`:
+
+ use Illuminate\Support\Number;
+
+ /**
+ * Bootstrap any application services.
+ */
+ public function boot(): void
+ {
+ Number::useCurrency('GBP');
+ }
+
+
+#### `Number::withCurrency()`
+
+Метод `Number::withCurrency` выполняет данное замыкание, используя указанную валюту, а затем восстанавливает исходную валюту после выполнения обратного вызова:
+
+ use Illuminate\Support\Number;
+
+ $number = Number::withCurrency('GBP', function () {
+ // ...
+ });
+
## Пути
@@ -2291,6 +2344,23 @@ $secondService->all(); // (cached result)
// 5
+
+#### `when()`
+
+Функция `when` возвращает заданное ей значение, если заданное условие имеет значение `true`. В противном случае возвращается `null`. Если замыкание передается в качестве второго аргумента функции, замыкание будет выполнено и будет возвращено его возвращаемое значение:
+
+ $value = when(true, 'Hello World');
+
+ $value = when(true, fn () => 'Hello World');
+
+Функция `when` в первую очередь полезна для условного рендеринга атрибутов HTML:
+
+```blade
+
+ ...
+
+```
+
## Другие утилиты
@@ -2342,6 +2412,61 @@ $now = Carbon::now();
Подробное описание `Carbon` и его функций можно найти в [официальной документации Carbon](https://carbon.nesbot.com/docs/).
+
+### Отложенные функции
+
+> [!WARNING]
+> Отложенные функции в настоящее время находятся на стадии бета-тестирования, пока мы собираем отзывы сообщества.
+
+Хотя [задания в очереди](/docs/{{version}}/queues) Laravel позволяют ставить задачи в очередь для фоновой обработки, иногда у вас могут возникнуть простые задачи, которые вы хотели бы отложить без настройки или обслуживания долго работающего обработчика очереди.
+
+Отложенные функции позволяют отложить выполнение закрытия до тех пор, пока HTTP-ответ не будет отправлен пользователю, что позволяет вашему приложению чувствовать себя быстрым и отзывчивым. Чтобы отложить выполнение замыкания, просто передайте его функции `Illuminate\Support\defer`:
+
+```php
+use App\Services\Metrics;
+use Illuminate\Http\Request;
+use Illuminate\Support\Facades\Route;
+use function Illuminate\Support\defer;
+
+Route::post('/orders', function (Request $request) {
+ // Create order...
+
+ defer(fn () => Metrics::reportOrder($order));
+
+ return $order;
+});
+```
+
+По умолчанию отложенные функции будут выполняться только в том случае, если HTTP-ответ, команда Artisan или задание в очереди, из которого вызывается `Illuminate\Support\defer`, завершаются успешно. Это означает, что отложенные функции не будут выполняться, если запрос приведет к HTTP-ответу `4xx` или `5xx`. Если вы хотите, чтобы отложенная функция выполнялась всегда, вы можете связать метод `always` с вашей отложенной функцией:
+
+```php
+defer(fn () => Metrics::reportOrder($order))->always();
+```
+
+
+#### Отмена отложенных функций
+
+Если вам нужно отменить отложенную функцию до ее выполнения, вы можете использовать метод `forget`, чтобы отменить функцию по ее имени. Чтобы назвать отложенную функцию, укажите второй аргумент функции `Illuminate\Support\defer`:
+
+```php
+defer(fn () => Metrics::report(), 'reportMetrics');
+
+defer()->forget('reportMetrics');
+```
+
+
+#### Совместимость отложенных функций
+
+Если вы обновились до Laravel 11.x из приложения Laravel 10.x и скелет вашего приложения все еще содержит файл `app/Http/Kernel.php`, вам следует добавить промежуточное программное обеспечение `InvokeDeferredCallbacks` в начало свойства `$middleware` ядра:
+
+```php
+protected $middleware = [
+ \Illuminate\Foundation\Http\Middleware\InvokeDeferredCallbacks::class, // [tl! add]
+ \App\Http\Middleware\TrustProxies::class,
+ // ...
+];
+```
+
### Лотерея
@@ -2443,6 +2568,12 @@ $user = Pipeline::send($user)
Класс `Sleep` предоставляет разнообразные методы, позволяющие вам работать с различными единицами времени:
+ // Вернуть значение после сна...
+ $result = Sleep::for(1)->second()->then(fn () => 1 + 1);
+
+ // Спать, пока заданное значение истинно...
+ Sleep::for(1)->second()->while(fn () => shouldKeepSleeping());
+
//Приостановите выполнение на 90 секунд...
Sleep::for(1.5)->minutes();