Funkcje pomocnicze

Nette\Utils\Helpers to klasa statyczna zawierająca przydatne funkcje pomocnicze.

Instalacja:

composer require nette/utils

Wszystkie przykłady zakładają, że zdefiniowany jest następujący alias klasy:

use Nette\Utils\Helpers;

capture (callable $func): string

Wykonuje callback i zwraca przechwycony wynik jako string.

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

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

Ogranicza wartość do zakresu domkniętego wyznaczonego przez min i max.

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

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

Porównuje dwie wartości tak samo jak PHP. Obsługuje operatory >, >=, <, <=, =, ==, ===, !=, !==, <>. Funkcja przydaje się w sytuacjach, gdy operator ustalany jest dynamicznie (jest zmienną).

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

falseToNull (mixed $value)mixed

Zamienia false na null; pozostałe wartości pozostają bez zmian.

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

getLastError(): string

Zwraca ostatni błąd PHP, który wystąpił, albo pusty string, jeśli żaden błąd nie wystąpił. W odróżnieniu od error_get_last() nie wpływa na niego dyrektywa PHP html_errors i zawsze zwraca tekst, a nie HTML.

Helpers::getLastError();

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

Spośród podanych $possibilities znajduje string najbardziej podobny do $value, ale nie identyczny. Obsługuje wyłącznie kodowania 8-bitowe.

Przydaje się to, gdy jakaś opcja jest nieprawidłowa, a chcesz zasugerować użytkownikowi podobną alternatywę (ale inną, dlatego identyczne stringi są pomijane). W ten sposób Nette generuje komunikaty “did you mean …?”.

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

splitClassName (string $name)array

Dzieli nazwę klasy PHP na przestrzeń nazw i krótką nazwę klasy. Zwraca tablicę dwóch stringów, z których pierwszy to przestrzeń nazw, a drugi nazwa klasy.

Helpers::splitClassName('Nette\Utils\Helpers'); // ['Nette\Utils', 'Helpers']
Helpers::splitClassName('Foo');                 // ['', 'Foo']
wersja: 4.x