Nette Documentation Preview

syntax
ヘルパー関数
******

.[perex]
[api:Nette\Utils\Helpers] は、便利なヘルパー関数を集めた静的クラスです。


インストール:

```shell
composer require nette/utils
```

以下の例では、次のクラスの別名が定義されているものとします。

```php
use Nette\Utils\Helpers;
```


capture(callable $func): string .[method]
-----------------------------------------

コールバックを実行し、その出力を文字列として取り込んで返します。

```php
$res = Helpers::capture(function () use ($template) {
	$template->render();
});
```


clamp(int|float $value, int|float $min, int|float $max): int|float .[method]
----------------------------------------------------------------------------

値を min から max までの範囲(両端を含む)に収めます。

```php
Helpers::clamp($level, 0, 255);
```


compare(mixed $left, string $operator, mixed $right): bool .[method]
--------------------------------------------------------------------

2 つの値を PHP と同じやり方で比較します。演算子 `>`、`>=`、`<`、`<=`、`=`、`==`、`===`、`!=`、`!==`、`<>` に対応しています。演算子が動的に決まる(変数である)場面で役立ちます。

```php
Helpers::compare(10, '<', 20); // true
```


falseToNull(mixed $value): mixed .[method]
------------------------------------------

`false` を `null` に変換します。ほかの値はそのままです。

```php
Helpers::falseToNull(false); // null
Helpers::falseToNull(123);   // 123
```


getLastError(): string .[method]
--------------------------------

直近に起きた PHP のエラーを返します。エラーが起きていなければ空文字列を返します。`error_get_last()` と違い、PHP のディレクティブ `html_errors` の影響を受けず、常に HTML ではなくテキストを返します。

```php
Helpers::getLastError();
```


getSuggestion(string[] $possibilities, string $value): ?string .[method]
------------------------------------------------------------------------

与えられた `$possibilities` の中から、`$value` に最も近く、かつ同一ではない文字列を見つけます。8 ビットのエンコーディングにのみ対応しています。

これは、ある選択肢が正しくないときに、似た代案をユーザーに示したい場合に便利です(ただし別のものを示すので、同一の文字列は無視されます)。Nette の「もしかして……?」というメッセージはこうして作られています。

```php
$items = ['foo', 'bar', 'baz'];
Helpers::getSuggestion($items, 'fo');   // 'foo'
Helpers::getSuggestion($items, 'barr'); // 'bar'
Helpers::getSuggestion($items, 'baz');  // 'baz' ではなく 'bar'
```


splitClassName(string $name): array .[method]{data-version:4.0.10}
------------------------------------------------------------------

PHP のクラス名を名前空間と短いクラス名に分けます。2 つの文字列の配列を返し、最初が名前空間、2 つめがクラス名です。

```php
Helpers::splitClassName('Nette\Utils\Helpers'); // ['Nette\Utils', 'Helpers']
Helpers::splitClassName('Foo');                 // ['', 'Foo']
```

ヘルパー関数

Nette\Utils\Helpers は、便利なヘルパー関数を集めた静的クラスです。

インストール:

composer require nette/utils

以下の例では、次のクラスの別名が定義されているものとします。

use Nette\Utils\Helpers;

capture(callable $func): string

コールバックを実行し、その出力を文字列として取り込んで返します。

$res = Helpers::capture(function () use ($template) {
	$template->render();
});

clamp(int|float $value, int|float $min, int|float $max): int|float

値を min から max までの範囲(両端を含む)に収めます。

Helpers::clamp($level, 0, 255);

compare(mixed $left, string $operator, mixed $right)bool

2 つの値を PHP と同じやり方で比較します。演算子 >>=<<=======!=!==<> に対応しています。演算子が動的に決まる(変数である)場面で役立ちます。

Helpers::compare(10, '<', 20); // true

falseToNull(mixed $value)mixed

falsenull に変換します。ほかの値はそのままです。

Helpers::falseToNull(false); // null
Helpers::falseToNull(123);   // 123

getLastError(): string

直近に起きた PHP のエラーを返します。エラーが起きていなければ空文字列を返します。error_get_last() と違い、PHP のディレクティブ html_errors の影響を受けず、常に HTML ではなくテキストを返します。

Helpers::getLastError();

getSuggestion(string[] $possibilities, string $value): ?string

与えられた $possibilities の中から、$value に最も近く、かつ同一ではない文字列を見つけます。8 ビットのエンコーディングにのみ対応しています。

これは、ある選択肢が正しくないときに、似た代案をユーザーに示したい場合に便利です(ただし別のものを示すので、同一の文字列は無視されます)。Nette の「もしかして……?」というメッセージはこうして作られています。

$items = ['foo', 'bar', 'baz'];
Helpers::getSuggestion($items, 'fo');   // 'foo'
Helpers::getSuggestion($items, 'barr'); // 'bar'
Helpers::getSuggestion($items, 'baz');  // 'baz' ではなく 'bar'

splitClassName(string $name)array

PHP のクラス名を名前空間と短いクラス名に分けます。2 つの文字列の配列を返し、最初が名前空間、2 つめがクラス名です。

Helpers::splitClassName('Nette\Utils\Helpers'); // ['Nette\Utils', 'Helpers']
Helpers::splitClassName('Foo');                 // ['', 'Foo']