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
.