8
4IT445 – Model Ing. Jan Mittner 20.11.2011

4IT445 – Model

  • 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

Page 1: 4IT445 – Model

4IT445 – ModelIng. Jan Mittner

20.11.2011

Page 2: 4IT445 – Model

Osnova

1. Rozšíření modelu

2. Vazba 1:n

3. Vazba m:n

2

Page 3: 4IT445 – Model

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

Page 4: 4IT445 – Model

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

Page 5: 4IT445 – Model

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

Page 6: 4IT445 – Model

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

Page 7: 4IT445 – Model

Ú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

Page 8: 4IT445 – Model

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