[PHP] naam conventies

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Zoolander
  • Registratie: Januari 2003
  • Laatst online: 23-11-2022

Zoolander

superslim!

Topicstarter
Ik zit een beetje met naam conventies in mijn maag.
namelijk, hoe geef je namen (behalve semantisch) aan je variabelen.
Wat vinden jullie?

variabelen:
PHP:
1
2
3
$een_lange_var_naam = 'iets';

$eenLangeVarNaam = 'iets';


klasse:
PHP:
1
2
3
4
5
6
7
class DoeIets {}

class doeIets{};

class Doe_Iets{};

class doe_iets{};


en functies, zelfde als variabelen?

Het lijkt dat de _ populairders is dan de hoofdletter bij het scheiden van woorden.

ben benieuwd naar jullie mening, kon geen PHP styletopic vinden hierover. :O

mijn naam slaat nergens op, althans niet op mij :P


Acties:
  • 0 Henk 'm!

  • Megamind
  • Registratie: Augustus 2002
  • Laatst online: 10-09 22:45
Zowiezo alle variabelen met kleine letters want het is hoofdletter gevoelig. 1x een hoofdletter vergeten kost je 10 minuten zoeken naar de fout...

Acties:
  • 0 Henk 'm!

  • Exterazzo
  • Registratie: Mei 2000
  • Laatst online: 20-09 10:13

Exterazzo

Qeasy

Ik heb geleerd dat Klassen altijd met een hoofdletter beginnen en variabele namen altijd met een kleine letter beginnen en daarna hoofdletters (camelcasing). Methoden en Properties ligt eraan. In Java deed ik dat ook altijd met camelcasing, maar nu werk in C# en worden die vanuit de codestandaard met hoofdletters geschreven.
PHP:
1
2
3
4
class DoeIets
   {
      $eenLangeVarNaam = 'iets'; 
   }

Audentia


Acties:
  • 0 Henk 'm!

  • disjfa
  • Registratie: April 2001
  • Laatst online: 03-07 14:47

disjfa

be

Megamind schreef op donderdag 05 oktober 2006 @ 13:45:
Zowiezo alle variabelen met kleine letters want het is hoofdletter gevoelig. 1x een hoofdletter vergeten kost je 10 minuten zoeken naar de fout...
Dat word naar met variabelen die groot zijn en je geen _ gebruikt.

$doeeensietswatjeleukvind = "bla";
$doe_eens_iets_wat_je_leuk_vind = "bla";
$doeEensIetsWatJeLeukVind = "bla";

Verder ligt het er geheel aan wat je zelf het prettigs lezen vind.

disjfa - disj·fa (meneer)
disjfa.nl


Acties:
  • 0 Henk 'm!

  • SH4D3H
  • Registratie: Juni 2004
  • Laatst online: 27-02 23:46
Misschien heb je wat aan de conventies van PEAR :)

Acties:
  • 0 Henk 'm!

  • Zoolander
  • Registratie: Januari 2003
  • Laatst online: 23-11-2022

Zoolander

superslim!

Topicstarter
die gaan helaas niet in op variabelen :(

mijn naam slaat nergens op, althans niet op mij :P


Acties:
  • 0 Henk 'm!

  • Zoolander
  • Registratie: Januari 2003
  • Laatst online: 23-11-2022

Zoolander

superslim!

Topicstarter
Het het hier overigens over PHP, ik weet dat JAVA camelcasing gebruikt.
Maar alle ingebakken functies in PHP lijken ook _ te gebruiken.
mysql_connect, etc.

mijn naam slaat nergens op, althans niet op mij :P


Acties:
  • 0 Henk 'm!

  • Exterazzo
  • Registratie: Mei 2000
  • Laatst online: 20-09 10:13

Exterazzo

Qeasy

Zoolander schreef op donderdag 05 oktober 2006 @ 13:49:
Het het hier overigens over PHP, ik weet dat JAVA camelcasing gebruikt.
Maar alle ingebakken functies in PHP lijken ook _ te gebruiken.
mysql_connect, etc.
Ik denk dat het uiteindelijk niet zoveel uitmaakt wat je gebruikt, camelcasing of underscores. Als je maar consequent blijft in het gebruik en dat je dingen goed documenteerd (codestandaard) als je met meerdere personen aan een project werkt.

Audentia


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 21-09 02:21

Janoz

Moderator Devschuur®

!litemod

php zelf heeft niet eens een fatsoenlijke conventie. Kijk alleen maar eens naar de verschrikkelijke berg fuinctienamen die elk weer een andere stijl aanhangen. Je laten leiden door php zelf is dan ook sterk af te raden.

Ikzelf gebruik die ene keer dat ik iets in php doe gewoon de java conventie, maar dat komt vooral omdat ik voor de rest vooral java doe. Camelcase, variabelen met kleine letter beginnen en classnamen met hoofdletter. COnstanten met allemaal hoofdletters en _.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Ik doe het altijd als volgt :
PHP:
1
2
3
4
5
$strEenNaam
$intEenNaam
$fltEenNaam
$arrEenNaam
$objEenNaam

eerst aangeven wat het is, en dan met camelcasing verder gaan.
Classes altijd met een hoofdletter beginnen, ook camelcasen.

[ Voor 5% gewijzigd door Cartman! op 05-10-2006 13:55 ]


Acties:
  • 0 Henk 'm!

  • Zoolander
  • Registratie: Januari 2003
  • Laatst online: 23-11-2022

Zoolander

superslim!

Topicstarter
ok, wat vinden jullie van deze logica dan:

PHP:
1
2
3
4
5
class ClassName{}

funcion functionName() {}

$een_variabele


puur vanwege leesbaarheid en onderscheid tussen methoden/klassen en variabelen.

[ Voor 4% gewijzigd door Zoolander op 05-10-2006 13:56 ]

mijn naam slaat nergens op, althans niet op mij :P


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 21-09 02:21

Janoz

Moderator Devschuur®

!litemod

Ikzelf zou variabele namen ook gewoon camelcase aanhouden. Het onderscheid tussen een functie en een variable is immers al de $ bij de ene en de () bij de andere, maar ik ben dan ook, zoals eerdder al vermeld, een javaan.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

Verwijderd

Ik vind die laatste van Zoolander wel aantrekkelijk lijken voor php, verder denk ik dat je het meeste hebt aan de overige tips van "iedereen", kies wat jezelf het beste vind en wees consequent!

Acties:
  • 0 Henk 'm!

Verwijderd

En hebben jullie nog ideeen over scope...

Ik gebruik vaak voor globals $g_varnaam en voor global binnen een class $m_varnaam en als function args $a_data.

bv.

PHP:
1
2
3
4
5
6
7
8
$g_globvar = 'hoi';
class Blaat
{
  var $m_varnaam;
  function funcnaam($a_data1, $a_data2)
 {
 }
}


Natuurlijk is die $m_ niet echt nodig want als je de vars in een class gebruikt moet je er toch $this->m_varnaam van maken. (edit: hoewel je wel sneller kunt zien of je $this bent vergeten).

[ Voor 20% gewijzigd door Verwijderd op 05-10-2006 14:12 ]


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Ik ben het met Janoz eens. onderscheid heb je toch wel. Als je je code gewoon netjes indeelt en een class apart als .class.php opslaat dan kun je dat toch niet verwarren met elkaar... alles gewoon camelcasen dus imo :) En bij een variabele aangeven wat het is, erg makkelijk.

Acties:
  • 0 Henk 'm!

  • Zoolander
  • Registratie: Januari 2003
  • Laatst online: 23-11-2022

Zoolander

superslim!

Topicstarter
g00fy schreef op donderdag 05 oktober 2006 @ 14:02:
Ik ben het met Janoz eens. onderscheid heb je toch wel. Als je je code gewoon netjes indeelt en een class apart als .class.php opslaat dan kun je dat toch niet verwarren met elkaar... alles gewoon camelcasen dus imo :) En bij een variabele aangeven wat het is, erg makkelijk.
Zo duidelijk is dat niet altijd,

PHP:
1
2
3
4
5
6
7
8
// () are so easy to forget...
$this->functieOfVar;

// unless...
$this->this_is_a_var;
$this->thisIsFunction;

// would know it sooner now...


En functies zijn er altijd wat minder dan variabelen, (hoop ik :P) dus vandaar ook met camelCasting wat bedenkingen ivm casesentive-heid.
En voor constanten, die gebruiken ook _ en past wat beter....

mijn naam slaat nergens op, althans niet op mij :P


Acties:
  • 0 Henk 'm!

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 18-09 14:42
Janoz schreef op donderdag 05 oktober 2006 @ 13:54:
Camelcase, variabelen met kleine letter beginnen en classnamen met hoofdletter. Constanten met allemaal hoofdletters en _.
Zo doe ik het zelf ook al een jaar of 5, en vind het erg overzichtelijk werken.

Prefixen met het type waarde (str, int, arr, obj, etc) doe ik soms, afhankelijk van de grootte van het project. Tik die ik heb overgehouden van een jaar werken in VB6. Maar is voor PHP niet echt nodig omdat alles in feite toch 'mixed' is.

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 21-09 02:21

Janoz

Moderator Devschuur®

!litemod

Dat () zo makkelijk vergeten wordt vind ik persoonlijk een beetje een kul argument. Dat is wel zo ongeveer het laatste wat ik zal vergeten. Het is trouwens camelcase, niet camelcast.


Hungarian vind ik persoonlijk smerig lijken, maar ik kan me voorstellen dat het handig kan zijn in een weaktyped omgeving. Ikzelf probeer er gewoon voor te zorgen dat de scope van mijn variabelen zo klein mogelijk is. Het bereik wordt dan een stuk kleiner en de daadwerkelijke declaratie zit nooit ver van het gebruik.

[ Voor 57% gewijzigd door Janoz op 05-10-2006 14:18 ]

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Inderdaad. Ik vergeet nooit mn () toe te voegen. Het is toch een functie... Op t moment dat je haakjes gaat vergeten als je een functie aanroept in PHP dan is er toch iets mis denk ik.

Acties:
  • 0 Henk 'm!

  • Zoolander
  • Registratie: Januari 2003
  • Laatst online: 23-11-2022

Zoolander

superslim!

Topicstarter
g00fy schreef op donderdag 05 oktober 2006 @ 14:19:
Inderdaad. Ik vergeet nooit mn () toe te voegen. Het is toch een functie... Op t moment dat je haakjes gaat vergeten als je een functie aanroept in PHP dan is er toch iets mis denk ik.
hahaha, ok. Dat was dus een slecht voorbeeld.
Jammer dat PHP wdb niet zo strak als Java is.

mijn naam slaat nergens op, althans niet op mij :P


Acties:
  • 0 Henk 'm!

  • GX
  • Registratie: Augustus 2000
  • Laatst online: 14-05 09:40

GX

Nee.

Ik ben het voornamelijk met Janoz eens, en ik zit nog steeds niet aan Java. :P

Een methode welke ik altijd wel vol probeer te houden, ongeacht de taal is

C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Object*
buitenClass(int style, ...)
{
  switch (style)
  {
    case ZOALS_HET_HOORT:
       return new Object("parameter");
    default:
       return 0;
  }
}

class Object : public AbstractClass
{
private:
  void functieEen();
  int  functieTwee();
public:
  Object(char*);
  ~Object()
protected:
  int   waarde;
  int   zinnig;
  Burp* doeIets();
};


Maar dan vaak probeer ik zinnige namen te gebruiken voor klassen en functies; vaak komt dat neer op functies als werkwoorden (zoals obj->process()) en klassen echt naar de naam van het object. variabele zijn dan weer namen van attributen, dus stel je voor dat je een klasse auto heb, dan heet een lijst-variabele deuren, en een methode openDeur().
Pagina: 1