Skip to content

Commit

Permalink
Merge pull request #206 from demn98/patch-341356
Browse files Browse the repository at this point in the history
Update helpers.md
  • Loading branch information
tabuna authored Oct 27, 2024
2 parents bca0bd4 + ac40691 commit b541e2d
Showing 1 changed file with 132 additions and 1 deletion.
133 changes: 132 additions & 1 deletion helpers.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
git: bb4650831ec4567c07d72f7a9949a95f90c04035
git: 8f1a3d074d960178fc00bc91760324336e898822
---

# Глобальные помощники (helpers)
Expand Down Expand Up @@ -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)
Expand All @@ -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)

</div>

Expand Down Expand Up @@ -181,6 +185,7 @@ Laravel содержит множество глобальных «вспомо
- [value](#method-value)
- [view](#method-view)
- [with](#method-with)
- [when](#method-when)

</div>

Expand Down Expand Up @@ -1213,6 +1218,28 @@ $classes = Arr::toCssStyles($array);

// 1.000,00 €

<a name="method-default-currency"></a>
#### `Number::defaultCurrency()`

Метод `Number::defaultCurrency` возвращает валюту по умолчанию, используемую классом `Number`:

use Illuminate\Support\Number;

$currency = Number::defaultCurrency();

// USD

<a name="method-default-locale"></a>
#### `Number::defaultLocale()`

Метод `Number::defaultLocale` возвращает локаль по умолчанию, используемую классом `Number`:

use Illuminate\Support\Number;

$locale = Number::defaultLocale();

// en

<a name="method-number-file-size"></a>
#### `Number::fileSize()`

Expand Down Expand Up @@ -1409,6 +1436,32 @@ $result = Number::pairs(25, 10, offset: 0);
return Number::format(1500);
});

<a name="method-number-use-currency"></a>
#### `Number::useCurrency()`

Метод `Number::useCurrency` устанавливает глобальную числовую валюту по умолчанию, что влияет на форматирование валюты при последующих вызовах методов класса `Number`:

use Illuminate\Support\Number;

/**
* Bootstrap any application services.
*/
public function boot(): void
{
Number::useCurrency('GBP');
}

<a name="method-number-with-currency"></a>
#### `Number::withCurrency()`

Метод `Number::withCurrency` выполняет данное замыкание, используя указанную валюту, а затем восстанавливает исходную валюту после выполнения обратного вызова:

use Illuminate\Support\Number;

$number = Number::withCurrency('GBP', function () {
// ...
});

<a name="paths"></a>
## Пути

Expand Down Expand Up @@ -2291,6 +2344,23 @@ $secondService->all(); // (cached result)

// 5

<a name="method-when"></a>
#### `when()`

Функция `when` возвращает заданное ей значение, если заданное условие имеет значение `true`. В противном случае возвращается `null`. Если замыкание передается в качестве второго аргумента функции, замыкание будет выполнено и будет возвращено его возвращаемое значение:

$value = when(true, 'Hello World');

$value = when(true, fn () => 'Hello World');

Функция `when` в первую очередь полезна для условного рендеринга атрибутов HTML:

```blade
<div {!! when($condition, 'wire:poll="calculate"') !!}>
...
</div>
```

<a name="other-utilities"></a>
## Другие утилиты

Expand Down Expand Up @@ -2342,6 +2412,61 @@ $now = Carbon::now();

Подробное описание `Carbon` и его функций можно найти в [официальной документации Carbon](https://carbon.nesbot.com/docs/).

<a name="deferred-functions"></a>
### Отложенные функции

> [!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();
```

<a name="cancelling-deferred-functions"></a>
#### Отмена отложенных функций

Если вам нужно отменить отложенную функцию до ее выполнения, вы можете использовать метод `forget`, чтобы отменить функцию по ее имени. Чтобы назвать отложенную функцию, укажите второй аргумент функции `Illuminate\Support\defer`:

```php
defer(fn () => Metrics::report(), 'reportMetrics');

defer()->forget('reportMetrics');
```

<a name="deferred-function-compatibility"></a>
#### Совместимость отложенных функций

Если вы обновились до 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,
// ...
];
```

<a name="lottery"></a>
### Лотерея

Expand Down Expand Up @@ -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();

Expand Down

0 comments on commit b541e2d

Please sign in to comment.