Moony
PHP Framework

Route variables

Každá routa může obsahovat proměnné zapasné <NÁZEV PODMÍNKA> a poté budou do metody předány parametrem, který musí mít stejný název, jako proměnná v routě.

int
Pouze čísla
id
Pouze čísla, ale minimum je 1
uuid
UUID 4
common
Nejběžnější charaktery v URL (a-z0-9-_).
common{MIN, MAX}
Stejné jako common. Možnost omezit min. a max. počet znaků (nechat prázdné pro neomezeno, např. common{32,} je omezení pro min. 32 znaků až do nekonečna.
equal{one,two,three,...}
Musí být přesně jedna z možností (odděleno čárkou).
regex{\d+}
Regex kontrola, bez ^ a $ pro začátek a konec, ten je přidán automaticky.
:DB-COLUMN{DB-TABLE[SELECT-COLUMNS]} +user ?
Vytáhne data přímo z databáze.
  • DB-COLUMN: Sloupec, podle kterého se záznam bude hledat (WHERE `DB-COLUMN` = ?)
  • DB-TABLE: Tabulka, ve které se bude hledat
  • SELECT-COLUMNS: (Volitelné) Čárkou oddělené sloupce, které vytáhnout. Pokud není uvedené tak se vytáhnou všechny.
  • +user: (Volitelné) Pokud je uvedeno, tak se ve WHERE přidá `user_id` = ? (id právě přihlášeného)
  • ?: (Volitelné) Pokud je uvedeno, tak v případě, že záznam neexistuje se metoda zavolá, ale parametru se předá NULL. Takový parametr musí být nullable!
#[Route('/show/item/<id int>')]
public function show(int $id) {}

#[Route('/show/item/<id id>')]
public function show(int $id) {}

#[Route('/show/item/<id uuid>')]
public function show(string $id) {}
...

#[Route('/show/item/<slug common>')]
public function show(string $slug) {}
...

#[Route('/show/item/<slug common{32}>')]
public function show(string $slug) {}
...

#[Route('/show/item/<item equal{item1,item2,item3}>')]
public function show(string $item) {}
...

#[Route('/show/item/<item regex{\w{5}-\w{10}}>')]
public function show(string $item) {}
...

#[Route('/show/item/<itemData :id{shop_items}>')]
public function show(array $itemData) {}
...

#[Route('/show/item/<itemData :id{shop_items}?>')]
public function show(?array $itemData) {}
...

#[Route('/show/item/<itemData :id{shop_items} +user ?>')]
public function show(?array $itemData) {}
...