Lees als je nog niet bekend bent met Dependency Injection de sectie op Educom e-learning site.
Lees als je nog niet bekend bent met het Design Pattern "Factory" de sectie op Educom e-learning site.
Maak een specefieke UserCrud class aan met methoden als createUser, readUserByEmail, updateUser etc
Zorg ervoor dat deze class een instantie van de generieke CRUD geïnjecteerd krijgen (dus niet overerven van de generieke CRUD)
Pas de UserModel aan om een UserCrud geinjecteerd te krijgen, en dat deze de functies van deze UserCrud gaat gebruiken.
Maak een ModelFactory die de CRUD geinjecteerd krijgt en twee methoden heeft een createCrud($name) en een createModel($name)
Pas de PageController aan om een ModelFactory geïnjecteerd te krijgen en het PageModel aan te vragen bij de ModelFactory
Bewaar een link naar de pageModel in de ModelFactory.
Maak in de index.php een nieuwe instantie aan van de CRUD die steeds wordt doorgegeven (dit is de enige plaats waar je dit doet).
Maak daarna ook de ModelFactory aan en geef de Crud hieraan mee. De Model Factory geef je mee aan de constructor van de PageController.
Daar waar voorheen een nieuwe UserModel wordt aangemaakt, vraag je dit nu aan de factory, deze maakt dan eerst een UserCrud aan met de instantie van de generieke crud, maakt daarmee een UserModel aan.
UserCrud
class aan met methoden alscreateUser
,readUserByEmail
,updateUser
etcCRUD
geïnjecteerd krijgen (dus niet overerven van de generieke CRUD)UserModel
aan om eenUserCrud
geinjecteerd te krijgen, en dat deze de functies van dezeUserCrud
gaat gebruiken.ModelFactory
die deCRUD
geinjecteerd krijgt en twee methoden heeft eencreateCrud($name)
en eencreateModel($name)
PageController
aan om eenModelFactory
geïnjecteerd te krijgen en hetPageModel
aan te vragen bij deModelFactory
index.php
een nieuwe instantie aan van de CRUD die steeds wordt doorgegeven (dit is de enige plaats waar je dit doet).ModelFactory
aan en geef de Crud hieraan mee. De Model Factory geef je mee aan de constructor van dePageController
.UserModel
wordt aangemaakt, vraag je dit nu aan de factory, deze maakt dan eerst eenUserCrud
aan met de instantie van de generiekecrud
, maakt daarmee eenUserModel
aan.