Applicatie naamgeving
Momenteel ben ik bezig met het schrijven van een applicatie in PHP m.b.v. CodeIgniter die redelijk complex is.
Nu loop ik soms vast op de naamgeving binnen PHP, CSS etc.. Hoe pakken jullie dit aan? Nadat een gebruiker inlogd is komt hij op het dashboard van zijn account terecht. Hier ziet hij ook de login geschiedenis die de naam getLoginHistoryByID binnen PHP heeft. Is dat logisch?
Verder ben ik van plan om ook alle images namen en alle CSS content op de PHP manier te gaan verwerken. Zoiets als headerBackground en #headerMenu.
Graag zou ik hierover wat tips willen ontvangen omdat ik nu volgens mij te perfectionistisch te werk ga en ik op sommige dingen dus vast loop omdat ik continu bezig ben met de naamgeving.
Alvast bedankt!
Nu loop ik soms vast op de naamgeving binnen PHP, CSS etc.. Hoe pakken jullie dit aan? Nadat een gebruiker inlogd is komt hij op het dashboard van zijn account terecht. Hier ziet hij ook de login geschiedenis die de naam getLoginHistoryByID binnen PHP heeft. Is dat logisch?
Verder ben ik van plan om ook alle images namen en alle CSS content op de PHP manier te gaan verwerken. Zoiets als headerBackground en #headerMenu.
Graag zou ik hierover wat tips willen ontvangen omdat ik nu volgens mij te perfectionistisch te werk ga en ik op sommige dingen dus vast loop omdat ik continu bezig ben met de naamgeving.
Alvast bedankt!
Gewijzigd op 04/12/2011 16:31:26 door PHP Scripter
Quote:
Hier ziet hij ook de login geschiedenis die de naam getLoginHistoryByID binnen PHP heeft.
Waarom ziet de gebruiker de naam van de method?
Quote:
Verder ben ik van plan om ook alle images namen en alle CSS content op de PHP manier te gaan verwerken. Zoiets als headerBackground en #headerMenu.
Let er wel op dat je jezelf niet gaat 'beperken' door dit te doen, zorg ervoor dat je dit consistent doet zodat je geen overbodige css elementen krijgt.
P.S. De naamgeving die je gebruikt 'klopt', zorg er ook voor duidelijke benamingen voor (private) fields.. sommige mensen gebruiken underscores om aan te duiden dat het om een private field gaat, andere geven ook alle fields een prefix ( private $sName, die 's' van 'string', 'i' van integer, 'b' van boolean.. etc)
Jaron, bedankt voor jouw reactie. De gebruiker ziet de naam van de method niet, maar ik doelde meer op de functie die ik in de view gebruik, qua naamgeving.
De benaming voor 'fields' is het probleem niet, maar meer de benaming voor functies etc.. Mijn 'probleem' zit hem er dus meer in dat ik niet weet of ik het goed doe qua naamgeving binnen PHP, CSS etc., ook al is het persoonlijk. En daar loop ik dus soms op vast en maak ik mezelf helemaal gek.
De benaming voor 'fields' is het probleem niet, maar meer de benaming voor functies etc.. Mijn 'probleem' zit hem er dus meer in dat ik niet weet of ik het goed doe qua naamgeving binnen PHP, CSS etc., ook al is het persoonlijk. En daar loop ik dus soms op vast en maak ik mezelf helemaal gek.
Gewijzigd op 04/12/2011 23:51:18 door PHP Scripter
Hoi PHP Scripter,
In CSS gebruik ik altijd naam-van-id (voorbeeld: #header-menu)
En in PHP gebruiker in de standaard van Zend. (voorbeeld: getUser, getEmail, getBla, setAah)
Ik vind het overigens heel belangrijk dat je in de naam aangeeft waar de functie over gaat. Dan is commentaar ook overbodig .. ;-)
Niels
In CSS gebruik ik altijd naam-van-id (voorbeeld: #header-menu)
En in PHP gebruiker in de standaard van Zend. (voorbeeld: getUser, getEmail, getBla, setAah)
Ik vind het overigens heel belangrijk dat je in de naam aangeeft waar de functie over gaat. Dan is commentaar ook overbodig .. ;-)
Niels
Niels, je wilt toch niet zeggen dar je nooit classes bebruikt in css?
Ger, natuurlijk wel ;-) Hoe wil je anders dingen hergebruiken? Maar het ging even om het idee.
Niels
Niels
Niels en Ger, bedankt voor jullie reacties.
Maar doe je dan ook bijvoorbeeld in de user class:
getNameByID
getEmailByID
Of laat je dat 'ByID' helemaal weg omdat het vanzelfsprekend is?
Maar doe je dan ook bijvoorbeeld in de user class:
getNameByID
getEmailByID
Of laat je dat 'ByID' helemaal weg omdat het vanzelfsprekend is?
Gewijzigd op 05/12/2011 21:52:31 door PHP Scripter
PHP Scripter op 05/12/2011 21:49:41:
Niels en Ger, bedankt voor jullie reacties.
Maar doe je dan ook bijvoorbeeld in de user class:
getNameByID
getEmailByID
Of laat je dat 'ByID' helemaal weg omdat het vanzelfsprekend is?
Maar doe je dan ook bijvoorbeeld in de user class:
getNameByID
getEmailByID
Of laat je dat 'ByID' helemaal weg omdat het vanzelfsprekend is?
Ik denk dat je het beter anders kunt aanpakken, namelijk het ID meegeven op het moment dat je de user aanmaakt. Dus zoiets:
$user_id = 31;
$user = new User($user_id);
$user_name = $user->getName();
Je zou ook eens kunnen kijken naar de Zend Coding Standards ook al ontwikkel je niet in Zend Framework, dan heb je alsnog hele goede richtlijnen over het gebruik van accolades, namen voor functies, classes, variabelen, etc!
PHP Scripter op 05/12/2011 21:49:41:
Niels en Ger, bedankt voor jullie reacties.
Maar doe je dan ook bijvoorbeeld in de user class:
getNameByID
getEmailByID
Of laat je dat 'ByID' helemaal weg omdat het vanzelfsprekend is?
Maar doe je dan ook bijvoorbeeld in de user class:
getNameByID
getEmailByID
Of laat je dat 'ByID' helemaal weg omdat het vanzelfsprekend is?
Nee zeker niet ById weghalen, want je kan later ook andere methods hebben (getByEmailAddress etc).. dynamisch maken is ook een oplossing maar niet zo net.
Jaron bedankt voor jouw reactie.
In de user class bijvoorbeeld:
- getNameByEmail
- getNameByID
- getNameByPosition
In de user class bijvoorbeeld:
- getNameByEmail
- getNameByID
- getNameByPosition
Is een `position` uniek dan?
Sorry nee, maar het ging maar meer om het principe.
PHP Scripter op 06/12/2011 13:06:07:
Jaron bedankt voor jouw reactie.
In de user class bijvoorbeeld:
- getNameByEmail
- getNameByID
- getNameByPosition
In de user class bijvoorbeeld:
- getNameByEmail
- getNameByID
- getNameByPosition
Misschien is het handig om gewoon 1 user (object) terug te geven i.p.v. alleen de naam, of ben je van plan om 10 get methods te maken voor de naam, postcode etc?
@Jaron, nee dat doe ik via getDataByID en vervolgens gebruik ik via de controller in de view een foreach met die data. En het is puur om het principe even te weten. Of ik nou gebruik maak van 'getUserNameByUserID' of 'getNameByID' in the User Class. Het eerste is duidelijker maar ook wat langer..
Reacties welkom! ;-)
Reacties welkom! ;-)
Gewijzigd op 06/12/2011 16:20:34 door PHP Scripter
Als de functie in de User class staat dan zou ik zeggen getName().
dan krijg je:
$user_id = 12;
$user = new User($user_id);
$user_name = $user->getName();
of
$user_name = User::getName($user_id);
dan krijg je:
$user_id = 12;
$user = new User($user_id);
$user_name = $user->getName();
of
$user_name = User::getName($user_id);
Ozzie PHP op 06/12/2011 17:04:26:
Als de functie in de User class staat dan zou ik zeggen getName().
dan krijg je:
$user_id = 12;
$user = new User($user_id);
$user_name = $user->getName();
of
$user_name = User::getName($user_id);
dan krijg je:
$user_id = 12;
$user = new User($user_id);
$user_name = $user->getName();
of
$user_name = User::getName($user_id);
oei.. dit is zooo tegen de regels van OOP in.
Je kan ook gebruik maken van de (magic) method __get(), dan heb je al die rare methodes niet nodig.
@Jaron,
Wat gaat tegen de regels in?
@Jaron,
Wat gaat tegen de regels in?
Jaron, zou je misschien willen uitleggen waarom? En misschien aangeven hoe het WEL moet?
Overigens, getByName en getByUsername zijn twee verschillende dingen ;-) Daarnaast kan getByName niet. Een naam is niet uniek, of je moet dat in het registratie proces hebben afgevangen. (Zou overigens heel vaag zijn, maar goed;-))
Gewijzigd op 06/12/2011 19:00:40 door Niels K
Niels, lees mijn post a.u.b. nog eens goed! ;-)




