Вспомогательные функции

Nette\Utils\Helpers – статический класс с полезными вспомогательными функциями.

Установка:

composer require nette/utils

Во всех примерах предполагается, что определён такой псевдоним класса:

use Nette\Utils\Helpers;

capture (callable $func): string

Выполняет callback и возвращает перехваченный вывод в виде строки.

$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

Сравнивает два значения так же, как это делает PHP. Поддерживает операторы >, >=, <, <=, =, ==, ===, !=, !==, <>. Функция полезна в ситуациях, когда оператор определяется динамически (находится в переменной).

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

falseToNull (mixed $value)mixed

Преобразует false в null; остальные значения остаются без изменений.

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 формирует сообщения “did you mean …?”.

$items = ['foo', 'bar', 'baz'];
Helpers::getSuggestion($items, 'fo');   // 'foo'
Helpers::getSuggestion($items, 'barr'); // 'bar'
Helpers::getSuggestion($items, 'baz');  // 'bar', а не 'baz'

splitClassName (string $name)array

Разделяет имя класса PHP на пространство имён и короткое имя класса. Возвращает массив из двух строк, где первая – пространство имён, а вторая – имя класса.

Helpers::splitClassName('Nette\Utils\Helpers'); // ['Nette\Utils', 'Helpers']
Helpers::splitClassName('Foo');                 // ['', 'Foo']
версия: 4.x