Code Styleguide: Unterschied zwischen den Versionen

Aus Contao Community Documentation

(Dateinamen: Eine Klasse pro Datei: Ausnahme für Hilfklassen hinzugefügt)
(Header: Lizenz aktualisiert (LGPL 3 ist seit 2.8 Standard))
Zeile 22: Zeile 22:
 
Beispiel:
 
Beispiel:
 
  /**
 
  /**
   * TYPOlight webCMS
+
   * TYPOlight Open Source CMS
   * Copyright (C) 2005 Leo Feyer
+
   * Copyright (C) 2005-2010 Leo Feyer
 
   *
 
   *
 
   * This program is free software: you can redistribute it and/or
 
   * This program is free software: you can redistribute it and/or
 
   * modify it under the terms of the GNU Lesser General Public
 
   * modify it under the terms of the GNU Lesser General Public
 
   * License as published by the Free Software Foundation, either
 
   * License as published by the Free Software Foundation, either
   * version 2.1 of the License, or (at your option) any later version.
+
   * version 3 of the License, or (at your option) any later version.
 
   *
 
   *
 
   * This program is distributed in the hope that it will be useful,
 
   * This program is distributed in the hope that it will be useful,
Zeile 37: Zeile 37:
 
   * You should have received a copy of the GNU Lesser General Public
 
   * You should have received a copy of the GNU Lesser General Public
 
   * License along with this program. If not, please visit the Free
 
   * License along with this program. If not, please visit the Free
   * Software Foundation website at http://www.gnu.org/licenses/.
+
   * Software Foundation website at <http://www.gnu.org/licenses/>.
 
   *
 
   *
 
   * PHP version 5
 
   * PHP version 5
 
   * @copyright  Some Company 2010
 
   * @copyright  Some Company 2010
   * @author    An Coder <somecoder@somedomain.tld>
+
   * @author    Max Mustercoder <mustercoder@somedomain.tld>
 
   * @package    RealCoolExtension
 
   * @package    RealCoolExtension
 
   * @license    LGPL
 
   * @license    LGPL

Version vom 30. März 2010, 21:56 Uhr

MsgError.png Unvollständiger Artikel: dieser Artikel ist noch nicht sauber bearbeitet.

Bitte erweitere ihn und entferne erst anschliessend diesen Hinweis.


Diese Seite soll einen allgemeinen Styleguide für Entwicklung von TYPOlight Extensions darstellen. Die hier gemachten Angaben entstanden aus der Auswertung des TYPOlight Core, erheben jedoch keinen Anspruch auf Vollständigkeit, Richtigkeit oder gar Übereinstimmung mit den Ansichten des Core Entwicklers Leo Feyer.

Dateien

Dateinamen

In jeder Datei sollte nur eine Klasse enthalten sein. Ausgenommen sind Hilfsklassen, die nur von der einen Klasse aufgerufen werden, oder deren Aufruf die Einbindung der einen Klasse voraussetzt (siehe Database, Databse_Statement, Database_Result).

Der Dateiname muss, damit die Klasse automatisch geladen werden kann (siehe Autoloader), gleich wie der Klassenname sein. Gross- und Kleinschreibung muss beachtet werden, da ansonsten auf Unix-/Linux-Servern die Klasse nicht gefunden werden kann.

Der Klassenname sollte, sofern er aus mehreren Worten besteht, in CamelCase geschrieben werden.

Header

In jeder Datei sollte oben ein Header enthalten sein, welcher mindestens folgende Informationen beinhalten sollte:

  • die Lizenz unter deren der Code veröffentlicht wurde.
  • der Name des Autors.
  • ggf. der Name der Firma, für welche der Code geschrieben wurde und deren geistiges Eigentum er somit darstellt.
  • das Paket, zu welchem die Datei gehört.

Diese Informationen sollten bestenfalls in phpdoc Notation vorgenommen werden. Beispiel:

/**
 * TYPOlight Open Source CMS
 * Copyright (C) 2005-2010 Leo Feyer
 *
 * This program is free software: you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation, either
 * version 3 of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this program. If not, please visit the Free
 * Software Foundation website at <http://www.gnu.org/licenses/>.
 *
 * PHP version 5
 * @copyright  Some Company 2010
 * @author     Max Mustercoder <mustercoder@somedomain.tld>
 * @package    RealCoolExtension
 * @license    LGPL
 * @filesource
 */

Code

Einrückung

In TYPOlight werden zum Einrücken von Code in der Regel normale TABulatoren verwendet und keine Spaces. Eine Ausnahme hiervon stellen Einrückungen von 2-3 Spaces dar, welche benötigt werden um beispielsweise Datenbankabfragen untereinander zu formatieren.

Klammerung, Leerzeichen und Kommata

In TYPOlight werden geschweifte Klammern grundsätzlich auf eine neue Zeile geschoben.

public function somefunction($param)
{
  if($param=='foo')
  {
    // do something
  }
  else
  {
    // do something else
  }
}

Nach oeffnenden und schliessenden runden Klammern wird kein Space geschrieben. Nach einem Komma, wird ein Space geschrieben.

Leerzeilen

Leerzeilen sollten verwendet werden um logische Codeabschnitte zu gruppieren. Nach einer Funktion sollte eine Leerzeile folgen. Leerzeilen sollten von allen Tabulator- und Leerzeichen bereinigt werden und wirkliche Leerzeilen sein.

Ansichten
Meine Werkzeuge

Contao Community Documentation

Nur weil es bei Nachbarseite XYZ was gibt, wird automatisch oft davon ausgegangen, dass das fertige Bauteil einsatzbereit auf der Straße liegt.

Marie Dietz
Navigation
Verstehen
Verwenden
Entwickeln
Verschiedenes
Werkzeuge