namespaces en class-namen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ozzie PHP

Ozzie PHP

22/10/2013 22:12:46
Quote Anchor link
Ola,

Voor de OOPers onder ons. Hoe noemen jullie je classes?
Stel we hebben een of andere generator class van een speciaal type.

Ik zou dan zelf dit doen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php

namespace Foo\Bar;
 
class Generator {

  // hier komen de methods

}

?>

Zoals je ziet noem ik de class dus Generator. Is dat juist? Of zouden jullie de class FooBarGenerator noemen? Met andere woorden, neem je de namespace mee in de class-naam? Ben ik wel nieuwsgierig naar...
Gewijzigd op 22/10/2013 22:13:48 door Ozzie PHP
 
PHP hulp

PHP hulp

27/11/2024 21:49:37
 
Frank Nietbelangrijk

Frank Nietbelangrijk

22/10/2013 23:02:12
Quote Anchor link
Namespaces zijn nu juist ontworpen om van Foo_Bar_Generator classnamen af te komen.
je kunt in jouw voorbeeld al de class expliciet aanroepen met Foo\Bar\Generator dus wat wil je nog meer?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

$generator
= new Foo\Bar\Generator();

?>
 
Wouter J

Wouter J

22/10/2013 23:28:02
Quote Anchor link
Goed, ik denk dat je zoiets bedoelt: gebruiken we Ozzie\Config\Loader\XmlLoader of Ozzie\Config\Loader\Xml

De eerste optie zie je terug in alle oss projecten. Ik hou meer van de 2de versie. Doormiddel van het use statement gebruik ik dan een algemene ConfigLoader (of XmlLoader) alias.
 
Ozzie PHP

Ozzie PHP

22/10/2013 23:46:25
Quote Anchor link
@Frank: dat was inderdaad precies wat ik bedoelde. Zoals jij het aangeeft doe ik het inderdaad ook, maar ik twijfelde even of dat wel klopte... maar dat is dus het geval :)

@Wouter: ik bedoelde wat Frank zei. Dus om even bij jouw voorbeeld te blijven, zou je zeggen Ozzie\Config\Loader\Xml of Ozzie\Config\Loader\XmlConfigLoader. Ik begrijp dat die eerste variant dus inderdaad de juiste is. Overigens vind ik wat jij nu noemt wel een heerlijk dubieus geval, want in de 2e versie heet jouw class dus Xml. Dat klopt eigenlijk niet (het is immers een loader class en niet een xml class), en in dit geval lijkt XmlLoader me de betere/mooiere keuze.
 
Wouter J

Wouter J

22/10/2013 23:52:40
Quote Anchor link
Het is in de Ozzie\Config\Loader namespace, dus je weet al dat het een Xml loader is. Zoals gezegd gebruik ik aliases zodat het in mijn code ook duidelijk is dat het een loader is: use Ozzie\Config\Loader\Xml as XmlLoader;
 
Ozzie PHP

Ozzie PHP

22/10/2013 23:55:14
Quote Anchor link
Ja, ik snap precies wat je bedoelt! Maar "Ozzie\Config\Loader" is de namespace, terwijl "Xml" de class-naam is. En dat klopt dus niet. Het is een Loader class van het type xml. Jij aliast het ook niet voor niets naar XmlLoader ;)
 



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.