Functie benamingen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Joakim Broden

Joakim Broden

21/07/2012 13:34:57
Quote Anchor link
Hoe noemen jullie je functie allemaal?

Stel ik heb een config class die allerlei settings van een website bevat, om een setting aan de config toe te voegen. Hoe heet deze functie dan?

1 ) $config->set of $config->add?

Ik denk dat je set meer gebruikt voor 1 element, en add om iets aan een array toe te voegen. In dit geval zijn er meerdere settings in de config dus zelf zou ik voor $config->add gaan.

En zouden jullie de set/add functie ook een omschrijvende naam geven?

2 ) $config->add of $config->addConfigKey?

Als je een omschrijvende naam gebruikt weet je gelijk wat er van die functie verwacht word. Maar als je alleen 'add' gebruikt schrijft het makkelijker in een website en heb je minder type werk, minder karakters, minder regels etc.

Zijn hier echt afspraken over of is het meer wat je zelf het lekkerste vind werken?
 
PHP hulp

PHP hulp

28/11/2024 18:49:20
 
Eddy E

Eddy E

21/07/2012 14:22:28
Quote Anchor link
Ik zou ->set gebruiken. Je stel iets in... je voegt niet een eigenschap toe. Je kent de eigenschap toe. Maar het maakt geen ene drol uit... PHP snapt je omschrijving toch niet.
Je kan net zo goed (wellicht zelfs beter...) $config->ikgeefeeninstellingop() doen.

Melk = kleur, vorm, drinkbaar (bool)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
// juist
$melk->set('kleur', 'wit');
$meld->set('vorm', 'vloeibaar');

// raar
$melk->add('kleur', 'wit');
?>
 
Erwin H

Erwin H

21/07/2012 19:59:58
Quote Anchor link
Bij een config class zou ik voor set gaan, omdat over het algemeen de configs al bestaan. Die haal je uit de ini of database en verandert ze. Zeer zelden zal je ze zomaar toevoegen.
Of je verder voor elke config een eigen setter maakt zou ik laten afhangen van het aantal en de benodigde flexibiliteit. Als je er maar een handvol hebt en ook niet een applicatie hebt waar er zomaar configs bij zullen komen, dan zou ik de setters uitschrijven. Als je voor flexibiliteit wilt gaan dan zou ik de config key laten meegeven. Dat betekent uiteraard wel meer kans op (moeilijk te vinden) fouten. Als je eens een key verkeerd tikt dan krijg je geen foutmelding, maar het zal niet werken zoals je verwacht.
 
Wouter J

Wouter J

21/07/2012 20:36:49
Quote Anchor link
Je hebt verschillende methodsnamen:

Setters
Deze gebruik je om een waarde in te stellen. Deze beginnen met set...(). Je gebruikt ze bijv. voor een config waarde hier of bijv. een aantal prefixen in een autoloader klasse:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$classloader
= new Classloader();
$classloader->setPrefixes(array(
    'Foo_' => 'my/map',
    ...,
));

?>


Getters
Getters gebruik je om een waarde te krijgen. Deze is get...(). Je gebruikt ze bijv. om de prefixes in een autoloader te krijgen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$classloader
->getPrefixes();
?>


Add...
Een add functie gebruik je als je een item toevoegd aan een array. Met bijv. setPrefixes zagen we dat we in 1 keer de hele property overschrijden en die een nieuwe waarde toekennen. Met een add...() method voeg je alleen iets toe:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$classloader
->addPrefix('Bar_', 'my/bar/map');
?>


Issers
Als laatste hebben we nog issers. Als je iets hebt ingesteld dat een bool is kun je het met een is...() method kijken of het true is:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if (true === $user->isLoggedIn()) {
    // do something
}
?>



Merk op dat dit algemene standaarden zijn die de meesten gebruiken, je bent natuurlijk vrij om het te noemen naar wat je zelf wilt.
Gewijzigd op 21/07/2012 20:40:12 door Wouter J
 



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.