Clean php code & comments

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Top Low-Code Developer Gezocht!

Bedrijfsomschrijving Unieke Kansen, Uitstekende Arbeidsvoorwaarden & Inspirerend Team Wij zijn een toonaangevende, internationale organisatie die de toekomst van technologie vormgeeft door het creëren van innovatieve en baanbrekende oplossingen. Ons succes is gebaseerd op een hecht en gepassioneerd team van professionals die altijd streven naar het overtreffen van verwachtingen. Als jij deel wilt uitmaken van een dynamische, vooruitstrevende en inspirerende werkomgeving, dan is dit de perfecte kans voor jou! Functieomschrijving Als Low-Code Developer ben je een cruciaal onderdeel van ons team. Je werkt samen met collega's uit verschillende disciplines om geavanceerde applicaties te ontwikkelen en te optimaliseren met behulp van Low-code

Bekijk vacature »

Sam Clauw

Sam Clauw

07/12/2012 08:57:03
Quote Anchor link
Ik vraag me al enige tijd af of er een standaard bestaat in het schrijven van PHP code en eventuele commentaar erbij. Ik schrijf er momenteel maar op los zonder een vaste structuur te volgen. Om het met een voorbeeld uit te leggen. Een if / else kan op volgende manieren geschreven worden:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
if($var = 1){
    return 100;
}else{
    return 200;
}


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
if($var = 1)
{
    return 100;
}
else
{
    return 200;
}

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
if($var = 1)
    return 100;
else
    return 200;


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
($var = Y) ? 100 : 200;


Ook qua "comments" schrijven is er nog wat verwarring langs mijn kant. Ik zag bijvoorbeeld programmeurs bepaalde comment blokken schrijven met heel wat *'s en /'s in één blok.

En ook over het schrijven van de query's kan wel het één en ander worden gezegd. Ik ga bijvoorbeeld zo te werk:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
"    SELECT        c.id, c.name, s.name AS status
    FROM        campaign AS c
    INNER JOIN    campaign_status AS s ON c.status_id = s.id
    WHERE        archive = 'N'";

Maar dan net iets netter onder elkaar geschreven (lukt niet goed met de code tags).

Is er ergens op het web een pagina te vinden waar dit thema aan bod komt? Of is er iemand die z'n eigen stramien wat uit kan leggen? Alvast bedankt!
Gewijzigd op 07/12/2012 09:02:57 door Sam Clauw
 
PHP hulp

PHP hulp

24/12/2024 15:03:24
 
Erwin H

Erwin H

07/12/2012 09:21:42
Quote Anchor link
Er is niet 1 php coding standard, er zijn er vele. Dat heeft vooral te maken met het feit dat veel php programmeurs een achtergrond in andere taal hebben (bij mij is dat bijvoorbeeld Delphi) en dan de standaard van die taal vaak aannemen. Zoek eens op 'php coding standards' en je zal er al veel vinden.

Welke je gebruikt is niet zo van belang. Wel belangrijk is dat je consequent die standaard blijft gebruiken. Bovenstaande voorbeeld van het gebruik van if statements zou je dus niet moeten kunnen geven. Kies een standaard en blijf erbij. Dat is niet overigens niet voor 'het nu', maar 'de toekomst'. Als je over een jaar of wat nog eens de code bekijkt wil je hetzelfde zien als dat je dan aan het schrijven bent. Dat leest makkelijker en helpt je begrijpen wat er staat.

Wat betreft commentaar zie je voornamelijk dat mensen de phpdoc standaards aanhouden. Grofweg is dat het volgende:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
/**
 * Some test function description
 * @param int $a
 * @param int $b
 * @return int
 */

function test( $a, $b ){
  //do something with $a and $b
  $c = $a + $b;  

  //return the value
  return $c;
}

?>

Waarbij de @param en @return speciale identifiers zijn die bij het parsen van een phpdoc automatisch worden verwerkt. Inmiddels is dit zo veel gebruikt, dat veel mensen (ik ook) deze stijl gebruiken zonder verder echt gebruik te maken van phpdoc.
Bij commentaar is uniformiteit net zo belangrijk, misschien nog wel belangrijker. Goed commentaar, waarbij het omschrijvings blok aangeeft wat de functie doet en in de functie iedere commentaar regel extra uitleg geeft bij een paar regels code, is nog veel belangrijker om code te snappen dan de code zelf.

Overigens zijn de extra regels commentaar die ik nu als voorbeeld heb gebruikt niet echt goed. Wat je wilt in die regels is niet simpel herhalen wat er gebeurt, maar voornamelijk waarom het gebeurt. Commentaar moet extra informatie geven of iets duidelijker maken, niet simpelweg vertellen wat je ook direct in de code kan zien. In dit simpele voorbeeld was dat echter wat lastig....
Gewijzigd op 07/12/2012 09:22:11 door Erwin H
 
Kris Peeters

Kris Peeters

07/12/2012 10:24:51
Quote Anchor link
Volledig akkoord.
Vooral dan dit:
Erwin H op 07/12/2012 09:21:42:
Welke je gebruikt is niet zo van belang. Wel belangrijk is dat je consequent die standaard blijft gebruiken.



Behalve dat ik graag een spatie zie tussen ) en { op lijn 8 :)

@ TS:

Bij mij wordt dat dus
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
if($var == 1) {
  return 100;
}

else {
  return 200;
}

?>


Ik werk graag volgens de drupal code standards ( http://drupal.org/coding-standards )
Wat indenteren betreft:

De sluitende accolade bevindt zich precies onde de plek waar het commando begon.
Dus de } staat nu onder de i van if.


Trouwens: if($var = 1) zal altijd 1 en dus true geven.
Gewijzigd op 07/12/2012 10:31:49 door Kris Peeters
 
Wouter J

Wouter J

07/12/2012 12:22:51
Quote Anchor link
De PHP community heeft afgelopen jaar een group opgericht, de PHP FIG (Framework Interop Group). Deze Group zorgt voor meer eenheid in de PHP codes, zodat alles mooi bij elkaar past en door elkaar gebruikt kan worden.

Deze Group heeft 3 PHP standards gemaakt, deze wijzen voor hoe je code schrijft. Deze PSR standaards kun je hier vinden: https://github.com/php-fig/fig-standards/tree/master/accepted

Ik heb ook eens wat op een rijtje gezet: https://gist.github.com/3923547 En ik ben bezig met een heel groot document waar je al mijn 'standards' kunt lezen.

Het kiezen in welke standaard je script is een zeer persoonlijke keuze (en als je gaat meewerken in groten projecten of binnen een bedrijf moet je je aan die standaard houden). Wel is het goed je altijd te houden aan de zelfde standaard, consistentie is de key tot overzichtelijke code.
 
Sam Clauw

Sam Clauw

12/12/2012 09:50:59
Quote Anchor link
Okay, dit is echt een leuke verzameling aan informatie, ik maak er binnenkort eens werk van zodat ik ook eens deftig kan beginnen te schrijven. @ Wouter: knap document! En aan iedereen: bedankt voor de reacties!
 



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.