Upload
caine
View
27
Download
0
Embed Size (px)
DESCRIPTION
Ing. Jan Mittner. 4IT445 – Model. Osnova. Rozšíření modelu Vazba 1:n Vazba m:n. Vlastní knihovny. pro zajištění znovupoužitelnosti se může hodit rozšířit Zend knihovny o vlastní logiku (v adresáři library ) a teprve na bázi vlastních knihoven pak stavět modely, controllery atd. - PowerPoint PPT Presentation
Citation preview
4IT445 – ModelIng. Jan Mittner
20.11.2011
Osnova
1. Rozšíření modelu
2. Vazba 1:n
3. Vazba m:n
2
Vlastní knihovny
pro zajištění znovupoužitelnosti se může hodit rozšířit Zend knihovny o vlastní logiku (v adresáři library) a teprve na bázi vlastních knihoven pak stavět modely, controllery atd. My_Db_Table
▪ metoda getById() – vrácení objektu dle primárního klíče
My_Db_Table_Row▪ dynamické gettery / settery pro atributy objektu
▪ inflektor pro získání názvu atributu
3
Servisní přístup k modelům nová třída My_Model v rámci vlastní knihovny
umožňuje servisní přístup k jednotlivým objektům modelů slouží primárně k vytváření instancí tříd modelů
vycházejících z My_Db_Table▪ pro každou třídu si vytvoří pouze jednu její instanci, kterou si drží v
registrech a následně ji na požádání vrací
▪ není totiž nutné vytvářet více instancí těchto modelů, jelikož nedrží svůj vnitřní stav, ale pouze nabízejí servisní přístup k využití dat z databáze
implementuje návrhový vzor singleton využití třídy My_Model je praktikováno v rámci
kontrolleru ProductController
4
Výrobce
ke každému produktu přiřadíme výrobce – vazba 1:n DB – nová tabulka manufacturers a vazba na tabulku
products nové objekty modelů
▪ Manufacturers – obsluha tabulky výrobců
▪ Manufacturer – objekt reprezentující jednoho výrobce
rozšíření modelů produktů▪ Products – referenční mapa na objekt výrobce
▪ Product▪ getManufacturer() – vrácení navázaného objektu výrobce
▪ getFullTitle() – tvorba plného názvu objektu kombinující název výrobce
rozšíření view šablon produktů▪ použití metody pro plný název produktu
5
Kategorie produktů
projekt rozšíříme o kategorie produktů – vazba m:n – produkty mohou spadat do více kategorií DB – nová tabulka folders a vazební tabulka
products_has_folders nové objekty modelů
▪ Folders – obsluha tabulky kategorií produktů▪ Folder – objekt reprezentující jednu kategorii produktů▪ ProductsHasFolders – vazební objekt propojující produkty a kategorie
rozšíření modelů produktů▪ Product
▪ getFolders() – seznam kategorií, do nichž je produkt přiřazen
rozšíření controlleru produktů▪ získání všech kategorií produktů
rozšíření view šablon produktů▪ index.html – výpis produktů podle kategorií▪ preview.html – výpis kategorií, v rámci nichž se produkt nachází
6
Úkoly
přidejte další entitu s vazbou na produkty
např. číselník barev, nebo související produkty
tabulka v databázi
modelové třídy
výpis ve view
7
Subversion
systém Subversion určený pro verzování souborů je vhodné v projektových týmech silně využívat pro zpřehlednění vývoje a sdílení kódu aplikace je možné využít různé SVN klienty – doporučujeme
TortoiseSVN a modul Subclipse v rámci Eclipse PDT
každý tým disponuje vlastním úložištěm každý člen má přístup k týmovému úložišti každý tým má FTP úložiště a databázi
▪ po commitu do Subversion se změny automaticky projeví na FTP, tudíž je zde dostupná poslední funkční verze aplikace
▪ do Subversion není vhodné commitovat dočasné soubory a Zend knihovnu – raději na tyto adresáře / soubory použít příkaz svn:ignore a nahrát je na FTP ručně
osobní i týmové přístupové údaje jsou dle vzoru viz http://4it445.vse.cz/
8