> PHP 4 en interfaces nabootsen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 22-09 13:37

alienfruit

the alien you never expected

Topicstarter
Waarschijnlijk weten jullie dat PHP versie 5.0 ondersteuning heeft voor interfaces, wat dus verschrikkelijk handig is. Alleen nu wil ik zoiets ook gebruiken in PHP 4, nu dacht ik er aan om gewoon een klasse "KlasseInterface" aan te maken waar alle methodes worden geintroduceerd, en vervolgens kun je deze dan overerven "Klass extends KlasseInterface" volgens mij ondersteund PHP 4 namelijk instanceof en implements keyword nog niet, dus je moet is_a() dach tik gebruiken om te kijken of de klasse KlassInterface "implementeert".

Wat vinden jullie van deze oplossing voor PHP versie 4.0?

Acties:
  • 0 Henk 'm!

Verwijderd

Je hebt in PHP toch geen multiple inheritance?

Dus je verliest dan wel de mogelijkheid om van andere klassen te inheriten.

En ander (beetje brute) mogelijkheid is een klasse te maken die kan checken of een andere klasse aan een bepaalde interface voldoet (door middel van uitgebreide checks met method_exists). Het nadeel is wel dat die checks niet direct goedkoop zullen zijn, dus dat het niet iets is wat je bij elke page request wilt doen.

Van de andere kant, je kunt er ook gewoon van uitgaan dat de klassen die rondgepasst worden de goede interfaces aanbieden; als dat niet zo is, dan kom je daar snel genoeg achter (doordat er foutmeldingen in de uitvoer verschijnen).

[ Voor 71% gewijzigd door Verwijderd op 27-01-2005 15:25 ]


Acties:
  • 0 Henk 'm!

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 22-09 13:37

alienfruit

the alien you never expected

Topicstarter
Ja, jammer genoeg, dan wordt de OOP design maar wat brakker :(
Naja, het is maar helaas, ik durf namelijk PHP5 niet te gebruiken om een DireactAdmin webserver, ik kan wel eens vragen in een andere deel van het forum of ze suggesties hebben.

Acties:
  • 0 Henk 'm!

Verwijderd

Me dunkt dat inheritance toch belangrijker (en nuttiger) is dan het forceren van interfaces.

Dus als je de keus hebt tussen één van de twee zou ik voor inheritance kiezen.