Jdi na navigaci předmětu

Praktická část

V rámci samostatné práce je cílem dokončit modelovou vrstvu našeho eshopu. Za kompletní dokončení obdržíte 1 bod.

Je důležité respektovat pravidla pro psaní kódu. Jinak nevznikne kód, který půjde dlouhodobě udržovat. V rámci cvičení respektujte alespoň následující:

  • Jména tříd se zapisují camel-case a s prvním velkým písmenem (např. ClassName).
  • Každá třída je uložena v samostatném souboru. Název souboru je tvořen názvem třídy a příponou .php (např. ClassName.php).
  • Jména konstant jsou psána velkými písmeny, podtržítko odděluje slova (např. MY_CONSTANT).
  • Názvy metod jsou psány camel-case a začínají malým písmenem (např. myMethod()).
  • Pro jména vlastností je vhodné zvolit konvenci, která bude ve vašem kódu jednotně dodržována (např. $myProperty, $my_property).

Datový model (0.5 B)

Vytvořte definice tříd, které reprezentují datový model aplikace Eshop (resp. jeho část).

  • Product
    • id (int)
    • name (string)
    • price (float)
  • Customer
    • id (int)
    • name (string)
  • Order
    • id (int)
    • created (date)
    • ordered (date)
    • customer (Customer)
    • items (Product[])

Každá třída musí mít alespoň výše uvedené atributy. Pro ně musí být poskytnuty gettery/settery (použijte IDE pro jejich vytvoření). Pokud je atribut typu kolekce (nebo pole) místo setteru poskytněte metody addElement a removeElement. Nahraďte slovo Element názvem odpovídajícího atributu.

Autoloading (0.25 B)

  • Napište a zaregistrujte funkci, která zajišťuje autoloading potřebných souborů. Předpokládejte, že zdrojové soubory jsou umístěny v adresáři src.

Testy (0.25 B)

Tato část je nutná k ověření funkcionality. V budoucnu ji nahradíme opravdovými testy.

Vytvořte samostatný soubor, který bude využívat vytvořený model a automaticky načítat jeho třídy:

  • Vytvořte několik instancí reprezentující zákazníky
  • Vytvořte několik instancí reprezentující produkty
  • Vytvořte instance reprezentující objednávky daných zákazníků
  • Celou strukturu pro kontrolu vypište např. pomocí print_r.