- - - By CrazyStat - - -

CMSimple_XH (1.6.X) Dokumentation



(Version 1.0.7 vom 13.11.2017)

Sie sind hier: Startseite > Architektur > Scripting > PHP Code Konventionen

5.9.4 • • PHP Code Konventionen

Seit CMSimple_XH 1.6 wurden die Pear Coding Standards für das Kernsystem angenommen. Autoren von Erweiterungen können in Erwägung ziehen, diese Coding Standards ebenfalls anzunehmen, aber natürlich ist das nicht verpflichtend. Zumindest die folgenden zehn Vorschläge sollten aber bei der Programmierung von Plugins, Addons und Anpassungen in Erwägung gezogen werden, damit der Code auch von anderen Entwicklern (einfacher und schneller) verstanden werden kann:

  1. Verwende immer <?php … ?> und nie die Kürzel <? … ?> oder <?= … ?> , da diese nicht überall verfügbar sind.

  2. Benutze verständliche (selbst sprechende) Namen für Funktionen und Variablen und vermeide nach Möglichkeit neue globale Variablen. Um Namenskollisionen zu vermeiden, sollten Funktionsnamen und anderen globalen Bezeichnern z.B. der Pluginname vorangestellt werden (Namespaces sind erst seit PHP 5.3 möglich).

  3. Code auf der gleichen logischen Ebene sollte immer mit 4 Leerzeichen bzw. mit 4 Zeichen langen Tabulatoren auf gleiche Höhe eingerückt werden.

  4. Es wird die Verwendung von geschweiften Klammern empfohlen, auch wenn sie nicht (unbedingt) erforderlich sind. Beispiel:

    // schlecht (das betrifft ebenfalls Punkt #2):
    if ($t == '')e('undefined', 'file', $fl);
    // besser:
    if ($temp == ''){
       error_message('undefined', 'file', $file);
    } // oder: if ($temp == '') { error_message('undefined', 'file', $file); }
  1. Benutze einfache Anführungszeichen wenn in der Zeichenkette keine Interpolation erfolgen muss.

    // schlecht:
    echo "<a href=\http://www.cmsimple.org\" title=\"CMSimple\">CMSimple</a>";
    // besser:
    echo '<a href=http://www.cmsimple.org\" title="CMSimple">CMSimple</a>';
  1. Separiere Parameter und Operatoren mit Leerzeichen.

    // schlecht:
    function some_function($foo,$bar){
       if($foo==bar){
          return $foo+$bar;
       }
    }
    // besser:
    function some_function($foo, $bar) {
       if ($foo == bar) {
          return $foo + $bar;
       }
    }
    // oder:
    function some_function($foo, $bar)
    {
       if($foo == bar)
       {
          return $foo + $bar;
       }
    }

    Verwende Zeilenumbrüche und Einrückungen bei vielen Parametern oder Bedingungen.

    // schlecht:
    if(isset($foo) && $foo > 1 && $foo < 45 && $bar == true){
       //...
    }
    // besser:
    if (isset($foo)
       && $foo > 1
       && $foo < 45
       && $bar == true
    ) {
        //...
    } 
  1. Verschachtele nicht zu tief und schreibe kurze Code Zeilen (max. 80 Zeichen sind üblicherweise empfehlenswert).

    // schlecht:
    $foo = explode('§', preg_replace("/(<h[1-".$cf['menu']['levels']."][^>]*>)/i",
     "§\\1", str_replace('§', '&#167;', rf($pth['file']['content']))));
     
    // besser:
    $foo = rf($pth['file']['content']);
    $foo = str_replace('§', '&#167;' $foo);
    $foo = preg_replace(
       '/(<h[1-' . $cf['menu']['levels'] . '][^>]*>)/i'
       '§\\1', $foo
    );
    $foo = explode('§', $foo);

    Zum Schreiben von kurzen Codezeilen können die einzelnen Zeilen mit einem "Punkt" direkt unter dem "=" verbunden (verkettet) werden.

    // schlecht:
    $foo = $foo1 . $foo2 . $foo3 . my_super_cool_calculation();
    // besser:
    $foo = $foo1
     . $foo2
     . $foo3
     . my_super_cool_calculation();
  1. Bei Funktionsnamen sollten besser lange und selbstsprechende Begriffe unter Verwendung von Unterstrichen oder camelCase als zu kurze Begriffe verwendet werden.

  2. Klassendefinitionen sollten mit Großbuchstaben beginnen und einen Zeilenumbruch vor der öffnenden Klammer haben.

    Class Toy
    {
       //...
    }
  1. Rücke bei Arrays die Zuordnung ein:

    // schlecht:
    array('drink' => 'coffee', 'do_not_watch'=>'tv', 'eat'=>'bread');
    // besser:
    array(
       'drink' => 'coffee',
       'do_not_watch' => 'tv',
       'eat' => 'bread',
    );