Yardımcı Fonksiyonlar
Nette\Utils\Helpers, kullanışlı yardımcı fonksiyonlar içeren statik bir sınıftır.
Kurulum:
composer require nette/utils
Tüm örnekler, aşağıdaki sınıf takma adının tanımlandığını varsayar:
use Nette\Utils\Helpers;
capture (callable $func): string
Bir callback'i çalıştırır ve yakalanan çıktıyı dize olarak döndürür.
$res = Helpers::capture(function () use ($template) {
$template->render();
});
clamp (int|float $value, int|float $min, int|float $max): int|float
Bir değeri min ve max ile belirtilen kapalı aralığa sıkıştırır.
Helpers::clamp($level, 0, 255);
compare (mixed $left, string $operator, mixed $right): bool
İki değeri PHP'nin yaptığı gibi karşılaştırır. >, >=, <,
<=, =, ==, ===, !=, !==, <>
operatörlerini destekler. Bu fonksiyon, operatörün dinamik olarak belirlendiği (bir değişken olduğu) durumlarda
işe yarar.
Helpers::compare(10, '<', 20); // true
falseToNull (mixed $value): mixed
false değerini null'a dönüştürür; diğer değerler değişmeden kalır.
Helpers::falseToNull(false); // null
Helpers::falseToNull(123); // 123
getLastError(): string
Oluşan son PHP hatasını, hata yoksa boş bir dize döndürür. error_get_last()'in aksine PHP'nin
html_errors yönergesinden etkilenmez ve her zaman HTML değil düz metin döndürür.
Helpers::getLastError();
getSuggestion (string[] $possibilities, string $value): ?string
Verilen $possibilities içinden $value'ya en çok benzeyen, ama onunla aynı olmayan dizeyi bulur.
Yalnızca 8 bitlik kodlamaları destekler.
Bu, belirli bir seçenek geçersiz olduğunda kullanıcıya benzer bir alternatif önermek istediğinizde işe yarar (ama farklı bir seçenek olmalı, aynı dizelerin yok sayılmasının nedeni budur). Nette, “bunu mu demek istediniz …?” mesajlarını böyle üretir.
$items = ['foo', 'bar', 'baz'];
Helpers::getSuggestion($items, 'fo'); // 'foo'
Helpers::getSuggestion($items, 'barr'); // 'bar'
Helpers::getSuggestion($items, 'baz'); // 'bar', 'baz' değil
splitClassName (string $name): array
Bir PHP sınıf adını isim alanı ile kısa sınıf adına ayırır. İlki isim alanı, ikincisi sınıf adı olmak üzere iki dizeden oluşan bir dizi döndürür.
Helpers::splitClassName('Nette\Utils\Helpers'); // ['Nette\Utils', 'Helpers']
Helpers::splitClassName('Foo'); // ['', 'Foo']