[oo] EventManagerAware en ContainterAware allebei laten extenden
Hoi,
Ik probeer de volgende code uit te voeren:
Maar dat gaat blijkbaar niet, want na enkele Google zoekopdrachten zag ik dat dat niet kan met PHP. Jammer.
Weet iemand een gepaste oplossing voor zo'n probleem op te lossen?
Raoul
Ik probeer de volgende code uit te voeren:
Maar dat gaat blijkbaar niet, want na enkele Google zoekopdrachten zag ik dat dat niet kan met PHP. Jammer.
Weet iemand een gepaste oplossing voor zo'n probleem op te lossen?
Raoul
Je kunt traits gebruiken ( http://php.net/traits )
Dit kan niet alleen niet in PHP, maar kan als het goed is in geen 1 OO taal. Extends zorgt voor 'IS_EEN' relatie. En je kan nooit 2 IS_EEN's te gelijk zijn? Ja, je kan zeggen Dolfijn IS_EEN dier en Dolfijn IS_EEN zoogdier, maar dan zou het worden Dolfijn IS_EEN zoogdier en Zoogdier IS_EEN dier.
Je kan wel meerdere interfaces implementeren. Dat zou dus een oplossing kunnen zijn. Tevens biedt PHP5.4 een nieuwe mogelijkheid, en dat zijn traits.
Je kan wel meerdere interfaces implementeren. Dat zou dus een oplossing kunnen zijn. Tevens biedt PHP5.4 een nieuwe mogelijkheid, en dat zijn traits.
Hmm, duidelijk. Die interfaces die ik nu gebruik voor die Aware classen zijn bv: EventManagerAware die EventManagerAwareInterface implementeert. Als ik gewoon die xxAwareInterface gebruik, wat is dan nog het nut van mijn EventManagerAware en ContainerAware classen?
Gewijzigd op 10/12/2012 21:51:34 door - Raoul -
Raoul, in dit geval niet heel veel. Maar misschien heb je wel meerdere klassen die alleen ContainerAware of EventManagerAware zijn. Bijv. alle services, die zouden geen ContainerAware mogen zijn (je moet zoveel mogelijk de dependencies injecteren in services en niet de hele container).
Wat ik nu wel zou doen is een base controller maken die deze basis code bevat, zodat elke controller het overerft.
Wat ik nu wel zou doen is een base controller maken die deze basis code bevat, zodat elke controller het overerft.
Die base controller is dan toch gewoon die controller class in m'n beginpost? Hij zit in de Framework/Mvc/Controller namespace