PHP Coding Standard

Logo: PHP
20. Regel 17: Bezeichner einer Klasse werden mit Großbuchstaben voneinander getrennt

Für Klassen, Methoden und Eigenschaften gelten alle bisher genannten Konventionen. Allerdings werden keine Unterstriche für Spaces eingesetzt, sondern die verschiedenen Wörter werden mit Großbuchstaben voneinander getrennt.

Gültig
   class DatabaseInputOutput
   {
      var connectRdbms;

      (...)

      function connectRdbmsSelectDatabase($host, $user, $password, $database)
      {
         $this->connectRdbms = mysql_connect($host, $user, $password);
         $selectDatabase = mysql_select_db($database);
         (...)
      }

      (...)
   }

Ich rate eher davon ab "connectRDBMS" oder "getsHTML" zu benutzen. Erstens könnte an anderer Programmierer denken: "Komisch, der meint bestimmt STHML, wegen SSI" und benennt die Methode in "getSHTML" um. Außerdem sollten alle Bezeichner kleingeschrieben werden. Dort wo sonst der Unterstrich steht, wird ein Großbuchstabe als "Trennzeichen" verwendet.

Der Name der Klasse und die Methoden werden am Anfang großgeschrieben und die Eigenschaften klein. Das hilft ein wenig Methoden und Eigenschaften auseinander zu halten. Methoden werden außerdem oft mit Parametern aufgerufen. Damit sollte ausreichend gewährleistet sein, Methoden und Eigenschaften nicht zu verwechseln.

Es hat sich bei vielen großen Projekten (Typo3, Drupal, PEAR beispielsweise) durchgesetzt, das Methoden am Anfang klein geschrieben werden. Mein Coding Standard soll auch "Best Practices" unterstützen und das Rat nicht neu erfinden. Methoden werden oft mit Parametern aufgerufen. Dass sollte ausreichen, um Methoden und Eigenschaften nicht zu verwechseln.

Ausnahme zu Regel 17: Wenn das Team sich für eine Struktur entscheidet, die jedem Mitglied intuitiv und einfach erscheint, sollte diese Struktur verwendet werden. Zum Beispiel könnte ein Team sagen: "Die Variable >$selectDatabase< gehört nur zu dieser Methode und wird deswegen als >$select_database< definiert. Damit können wir sehen, dass es sich um eine lokale Variable dieser Methode handelt." Beide Varianten haben Vor- und Nachteile.