ヘルパー関数

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']
バージョン: 4.x