Controller_Garage
extends Controller
in package
Kontroler zajišťující správu virtuální garáže uživatele i administrátora.
Obsahuje kompletní logiku pro CRUD operace nad vozidly, správu fotografií a validaci technických parametrů (VIN, SPZ).
Table of Contents
Properties
- $model : Model
- $current_page : int
- $error : string
- $pagination : array<string|int, mixed>
- $result : array<string|int, mixed>
- $result_vehicle : array<string|int, mixed>
- $total_pages : int
Methods
- __construct() : mixed
- Konstruktor kontroleru.
- addNewVehicle() : mixed
- Zpracovává požadavek na přidání nového vozidla.
- buildPagination() : array<string|int, mixed>
- Logika pro výpočet a vygenerování pole stránek pro stránkování (pagination).
- manageVehicle() : mixed
- Zajišťuje editaci nebo smazání vozidla.
- sessionLoginStart() : void
- Nastaví klíčové údaje o uživateli do globální proměnné $_SESSION po úspěšném přihlášení.
- sessionStatus() : mixed
- Zkontroluje a v případě potřeby zahájí PHP session.
- showAllVehicles() : void
- Zobrazí seznam všech dostupných vozidel.
- showHomePage() : mixed
- Zobrazí úvodní stránku aplikace.
- showNewVehliclePage() : mixed
- Zobrazí formulář pro přidání nového vozidla.
- showVehicle() : void
- Zobrazí detail konkrétního vozidla na základě jeho ID.
- vehiclePhoto() : string|null
- Obsluhuje nahrávání fotografií na server.
- preventCache() : void
- Nastaví HTTP hlavičky pro zabránění ukládání obsahu stránky do mezipaměti prohlížeče (cache).
- validateVehicleData() : bool
- Pomocná metoda pro serverovou validaci dat vozidla.
Properties
$model
protected
Model
$model
Instance databázového modelu pro přístup k datům
$current_page
private
int
$current_page
Proměnné pro řízení stavu a výpočtu stránkování
$error
private
string
$error
Chybová hláška pro zobrazení ve view
$pagination
private
array<string|int, mixed>
$pagination
Pole pro uložení výsledků z DB (seznamy, detail vozidla, metadata stránkování)
$result
private
array<string|int, mixed>
$result
Pole pro uložení výsledků z DB (seznamy, detail vozidla, metadata stránkování)
$result_vehicle
private
array<string|int, mixed>
$result_vehicle
Pole pro uložení výsledků z DB (seznamy, detail vozidla, metadata stránkování)
$total_pages
private
int
$total_pages
Proměnné pro řízení stavu a výpočtu stránkování
Methods
__construct()
Konstruktor kontroleru.
public
__construct(mixed $model) : mixed
Inicializuje výchozí strukturu dat a volá konstruktor rodiče pro nastavení modelu.
- @param Model $model Instance třídy Model
Parameters
- $model : mixed
addNewVehicle()
Zpracovává požadavek na přidání nového vozidla.
public
addNewVehicle() : mixed
Provádí validaci, kontrolu duplicity SPZ a nahrání fotografie.
- @return void
buildPagination()
Logika pro výpočet a vygenerování pole stránek pro stránkování (pagination).
public
buildPagination(int $current, int $total) : array<string|int, mixed>
Zajišťuje, aby se v navigaci zobrazoval správný rozsah stránek kolem aktuální pozice.
- @param int $current Aktuální číslo stránky, na které se uživatel nachází
Parameters
- $current : int
- $total : int
-
Celkový počet dostupných stránek
Return values
array<string|int, mixed> —Pole obsahující strukturu stránek pro vykreslení ve view
manageVehicle()
Zajišťuje editaci nebo smazání vozidla.
public
manageVehicle() : mixed
Spravuje fyzické soubory fotografií při smazání nebo aktualizaci záznamu.
- @return void
sessionLoginStart()
Nastaví klíčové údaje o uživateli do globální proměnné $_SESSION po úspěšném přihlášení.
public
sessionLoginStart(mixed $id, string $email, string $name, string $surname, string $role) : void
Inicializuje také pomocné proměnné pro procesy ověřování a profilu.
- @param int $id Unikátní ID uživatele z databáze
Parameters
- $id : mixed
- $email : string
-
Přihlašovací e-mail
- $name : string
-
Jméno uživatele
- $surname : string
-
Příjmení uživatele
- $role : string
-
Role uživatele (admin / uživatel)
sessionStatus()
Zkontroluje a v případě potřeby zahájí PHP session.
public
sessionStatus() : mixed
Brání chybám typu "headers already sent" kontrolou stavu PHP_SESSION_NONE.
- @return void
showAllVehicles()
Zobrazí seznam všech dostupných vozidel.
public
showAllVehicles([mixed $page = 1 ]) : void
U běžného uživatele filtruje pouze jeho auta, admin vidí všechna vozidla v systému.
- @param int $page Číslo aktuální stránky pro výpočet offsetu
Parameters
- $page : mixed = 1
showHomePage()
Zobrazí úvodní stránku aplikace.
public
showHomePage() : mixed
Pokud je uživatel již přihlášen, automaticky ho přesměruje na jeho profil. Zároveň čistí dočasné proměnné z procesu resetování hesla.
- @return void
showNewVehliclePage()
Zobrazí formulář pro přidání nového vozidla.
public
showNewVehliclePage() : mixed
- @return void
showVehicle()
Zobrazí detail konkrétního vozidla na základě jeho ID.
public
showVehicle(mixed $vehicle_id) : void
Provádí autorizaci vlastnictví nebo kontrolu admin role.
- @param int|string $vehicle_id ID vozidla
Parameters
- $vehicle_id : mixed
vehiclePhoto()
Obsluhuje nahrávání fotografií na server.
public
vehiclePhoto(mixed $oldPhotoPath) : string|null
Kontroluje MIME typy, přípony a ošetřuje název souboru.
- @param string|null $oldPhotoPath Cesta ke staré fotce pro její odstranění
Parameters
- $oldPhotoPath : mixed
Return values
string|null —Relativní cesta k nové fotce nebo null
preventCache()
Nastaví HTTP hlavičky pro zabránění ukládání obsahu stránky do mezipaměti prohlížeče (cache).
protected
preventCache() : void
Důležité pro stránky s citlivými údaji po odhlášení.
- @return void
validateVehicleData()
Pomocná metoda pro serverovou validaci dat vozidla.
private
validateVehicleData(string $spz, string $vin) : bool
Kontroluje délku SPZ a parametry VIN (přesně 17 znaků, zákaz I, O, Q).
- @param string $spz Registrační značka
Parameters
- $spz : string
- $vin : string
-
Identifikační číslo vozidla
Return values
bool —True pokud jsou data validní