Global Functions

Soubor bootstrap/inc/globalFunctions.php obsahuje globální helper funkce dostupné odkudkoli v PHP kódu i v Twig šablonách. Funkce jsou registrované s if(!function_exists(...)) guardem, takže je lze přepsat v aplikaci.

Routing a navigace

route(?string $name, ...$params)Vygeneruje URL z pojmenované route. Bez parametru vrátí aktuální URL.
redirect(?string $location, array $variables, int $httpStatusCode)Přesměruje na danou URL. Proměnné se předají do další stránky přes session.
currentUrl(bool $withQueryString = false)Vrátí aktuální URL bez domény. S true i s query stringem.
currentRouteName()Vrátí název aktuální pojmenované route nebo null.
// Vygenerování URL
$url = route('profile.show', $userId);  // /profile/42

// Redirect s flash message
redirect('/dashboard', ['success' => 'Uloženo']);

// Kontrola aktuální stránky
if(currentRouteName() === 'dashboard') {
    // ...
}

Request

request()Vrátí instanci Request z DI kontejneru.

Konfigurace

config(...$args)Přečte konfigurační hodnotu. config('production'), config('global', 'possibleLanguages')
if(config('production')) {
    // produkční prostředí
}

$languages = config('global', 'possibleLanguages'); // ['en', 'cs']

Jazyk

lang(string|array $itemName, mixed $variableValue = null)Vrátí přeloženou hodnotu z jazykového souboru. Formát: 'Group.Key'
currentLanguage()Vrátí kód aktuálního jazyka (en, cs, ...)
echo lang('Global.WelcomeMessage');         // "Welcome!"
echo lang('Global.Hello', 'Jan');            // "Hello, Jan!"
echo currentLanguage();                       // "cs"

Téma

currentTheme()Vrátí aktuální téma (light/dark). Priorita: user preference > cookie > výchozí dark.

Časová zóna

getTimezone()Vrátí DateTimeZone — z profilu uživatele nebo z konfigurace.

Admin práva

admin(AdminRightsEnum|string ...$rights)Zkontroluje admin práva. SuperAdmin má vždy true. Více práv = OR operand.
if(admin(AdminRightsEnum::DASHBOARD_VIEW)) {
    // uživatel má právo na dashboard
}

// Více práv (OR)
if(admin(AdminRightsEnum::USERS_VIEW, AdminRightsEnum::USERS_EDIT)) {
    // stačí jedno z práv
}

// Právo jako string (dynamicky)
if(admin('DASHBOARD_VIEW')) {
    // ...
}

Enum helpers

enumValue(mixed $enum)Vrátí hodnotu PHP backed enumu
enumName(mixed $enum)Vrátí název PHP enumu

Konstanty

KB1024
MB1 048 576
GB1 073 741 824
TB1 099 511 627 776
// Použití konstant
$maxUpload = 10 * MB;  // 10 485 760 bytes
Validator::fileSize(5 * MB, 'Soubor je příliš velký');

Přidání vlastní globální funkce

// bootstrap/inc/globalFunctions.php

if(!function_exists('formatPrice')) {
    function formatPrice(float $price, string $currency = 'CZK'): string {
        return number_format($price, 2, ',', ' ') . ' ' . $currency;
    }
}

// Použití kdekoli v PHP
echo formatPrice(1234.5); // "1 234,50 CZK"
Funkce z globalFunctions.php jsou automaticky dostupné i v Twig šablonách, pokud jsou registrované v View::registerCustomFunctions().
Pro nové globální funkce je třeba přidat registraci do View.php v poli $phpFunctions, aby byly dostupné v Twig šablonách.