[PHP] Scope / namespace vraagstuk

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Gwaihir
  • Registratie: December 2002
  • Niet online
Ik ben bezig aan een uitgebreide applicatie in PHP. Gezien het formaat dat het geheel gaat krijgen en het feit dat het nog een tijdje mee zal moeten, met telkens weer uitbriedingen / wijzigingen werk ik uitgebreid met OO en is het geheel opgebouwd in een aantal lagen (interface, agents, probleem domein, data management). Voor elke use case werken doorgaans een aantal objecten samen, elk met hun eigen taak. Tot zoverre heel standaard allemaal ;)

Daarom verbaast het me een beetje dat ik vast loop bij de onderlinge communicatie tussen die objecten. Met name binnen één laag zouden verschillende objecten (voor zover het public methods betreft) toch vrijelijk met elkaar moeten kunnen communiceren. Helaas lijkt PHP daar maar één oplossing voor te hebben: alle betreffende objecten in de global scope gooien. :( Triest

Is daar niet iets beters op te verzinnen? Ik denk dan met name richting de namespaces zoals andere OO talen (C++, Java) die kennen. De search gaf me een post van van -NMe- waar hij (M/V?) veelbelovend een linkje post, maar dat werkte helaas niet meer.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Birdie schreef op maandag 18 juli 2005 @ 04:07:
Is daar niet iets beters op te verzinnen? Ik denk dan met name richting de namespaces zoals andere OO talen (C++, Java) die kennen.
Namespaces zijn AFAIK nog niet mogelijk in PHP, maar je zou een soort controleclass kunnen maken waar je die objecten in stopt, in plaats van in de global scope. Niet erg netjes, maar het blijft behelpen.
De search gaf me een post van van -NMe- waar hij (M/V? ;)) veelbelovend een linkje post, maar dat werkte helaas niet meer.
Hmm, die link heeft ook niet lang gewerkt dan... Maar gelukkig heeft het webarchief hem gearchiveerd: *klik*. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Gwaihir
  • Registratie: December 2002
  • Niet online
Thanks :) Aan zo'n controle class zat ik ook al te denken. Wilde even bevestigd zien dat 't echt niet eleganter kon.

Hmm.. op dat linkje inderdaad ook een controle class. Die gast geeft helaas niet echt een "expert" indruk door vervolgens te suggegeren alleen statisch aan te roepen en er zo "triomfantelijk" een voorbeeld van simpele overerving onder te zetten.

Echte namespaces zijn er in PHP inderdaad niet. Misschien met PHP 5.2, maar da's dan al gauw 1,5 jaar in de toekomst. Daar dit specifiek een PHP gemis is, kon ik ook weinig (zeg maar geen) hints erover vinden (gebruikelijke leentjebuur van ontwerpprincipes van Java, C++ en zo ging niet op).

Acties:
  • 0 Henk 'm!

  • alienfruit
  • Registratie: Maart 2003
  • Nu online

alienfruit

the alien you never expected

Ja, zo groepeer ik nu ook functies, bijv. alle UTF8 functies in de UTF8-klasse etc.
Van mij mogen ze heel de Zend Engine herschrijven, erg vrolijk wordt je niet van hoe Zend/php programmeurs bugs fixen :+

Overigens loopt er nu een discussie oer de namespaces (+ cvs commit) op de developers mailing list, zie: http://marc.theaimsgroup....dev&m=112166329929620&w=2

[ Voor 34% gewijzigd door alienfruit op 19-07-2005 20:12 ]