Advertisement
Advertisement

More Related Content

Advertisement

Pět vrstev modelu

  1. @jantichy @mediocz Jan Tichý Medio Interactive Útěk od Active Record Pět vrstev modelu
  2. Co záznam v tabulce, to jedna instance
  3. Všechny gettery, settery a obslužné metody jsou v jedné třídě $article = new Article(123); $article->setStatus(Article::STATUS_PUBLISHED); $article->setPublished(new DateTime); $article->save();
  4. Vrstvy modelu v Active Record
  5. Více různých uložišť
  6. Nahrazování jinými třídami
  7. Single responsibility
  8. Testovatelnost
  9. Silná vazba na strukturu databáze
  10. Jeden record je právě jedna tabulka
  11. Rozšiřitelnost, reusability, modularita
  12. Vrstvy modelu
  13. Entita
  14. Gettery, settery
  15. Typové konverze, kontrola validity $article = new Article; $article = ArticleRepository::find(123); $article->setStatus(Article::STATUS_PUBLISHED); $article->setPublished(new DateTime); echo $article->getTitle();
  16. Mapper
  17. Databáze, memcache, filesystém
  18. Při find() načte data, vytvoří a naplní entitu, vrátí do repository
  19. Při save() dostane od repository entitu a uloží ji do daného uložiště $mapper = new ArticleDbMapper; $article = $mapper->find(123); $mapper->save($article);
  20. Repository
  21. Jednotné místo pro obslužné metody
  22. Řídí si ukládání, cachování, práci s mappery
  23. Na pozadí volá jednotlivé mappery $article = ArticleRepository::find(123); ArticleRepository::save($article); ArticleRepository::delete($article); ArticleRepository::move($article, 5);
  24. Můžeme prohazovat různé mappery
  25. Jedna repository může podmíněně vracet různé typy entit: // vrátí Television (potomek Product) $product = ProductRepository::find(5); // vrátí Notebook (potomek Product) $product = ProductRepository::find(123);
  26. Service
  27. Balí je do ucelené funkčnosti
  28. Příklad rozvrstvení modelu
  29. @jantichy @mediocz Jan Tichý Medio Interactive Díky za pozornost!
Advertisement