[oo] EventManagerAware en ContainterAware allebei laten extenden

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

- Raoul -

- Raoul -

10/12/2012 15:38:11
Quote Anchor link
Hoi,

Ik probeer de volgende code uit te voeren:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

class Controller extends ContainerAware, EventManagerAware

?>


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
 
PHP hulp

PHP hulp

22/12/2024 08:54:33
 
TJVB tvb

TJVB tvb

10/12/2012 16:15:44
Quote Anchor link
Je kunt traits gebruiken ( http://php.net/traits )
 
Wouter J

Wouter J

10/12/2012 16:36:55
Quote Anchor link
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.
 
Jurgen B

Jurgen B

10/12/2012 20:01:48
Quote Anchor link
In C++ kan het in ieder geval wel.
 
Jaron T

Jaron T

10/12/2012 20:33:03
Quote Anchor link
@Jurgen, je bedoelt IMPLEMENTS i.p.v. extend?
 
- Raoul -

- Raoul -

10/12/2012 21:51:07
Quote Anchor link
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 -
 
Wouter J

Wouter J

10/12/2012 22:40:45
Quote Anchor link
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.
 
- Raoul -

- Raoul -

11/12/2012 00:00:27
Quote Anchor link
Die base controller is dan toch gewoon die controller class in m'n beginpost? Hij zit in de Framework/Mvc/Controller namespace
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.