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 CrudFactory die de CRUD geinjecteerd krijgt en een publieke methode heeft createCrud($name).
Maak een ModelFactory die de CrudFactory geinjecteerd krijgt en een methoden heeft createModel($name).
Pas de PageController aan om een ModelFactory geïnjecteerd te krijgen in de constructor en daar 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 ModelFactory, deze vraagt op zijn beurt aan de CrudFactory om een UserCrud aan te maken, en met deze instantie en het eerder aangemaakte pageModel, maakt de ModelFactory 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.CrudFactory
die deCRUD
geinjecteerd krijgt en een publieke methode heeftcreateCrud($name)
.ModelFactory
die deCrudFactory
geinjecteerd krijgt en een methoden heeftcreateModel($name)
.PageController
aan om eenModelFactory
geïnjecteerd te krijgen in de constructor en daar 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 deModelFactory
, deze vraagt op zijn beurt aan deCrudFactory
om eenUserCrud
aan te maken, en met deze instantie en het eerder aangemaakte pageModel, maakt deModelFactory
daarmee eenUserModel
aan.