it-swarm.com.de

Benennen von Klassen, Methoden, Funktionen und Variablen

Es gibt 3 wichtige Namenskonventionen:

  1. with_underscores
  2. PascalCased
  3. camelCased

Andere Varianten sind nicht wichtig, da sie nicht häufig verwendet werden.

Bei Variablen scheint die mit Unterstrichen am häufigsten von Entwicklern verwendet zu werden, daher bleibe ich dabei. Ich denke, dass es für Funktionen das gleiche ist.

Aber was ist mit Klassen- und Methodennamen? Welche dieser 3 wird von Entwicklern für solche Konstrukte am häufigsten verwendet? (persönlich ist es 3. für Methoden und 2. für Klassen)

Bitte posten Sie keine Dinge wie "Verwenden Sie, was Sie für richtig halten", da der Code, den ich schreibe, eine API für andere Entwickler ist und ich den beliebtesten Codierungsstil übernehmen möchte :)

92
Alexa

Ich hatte vor ungefähr einem Jahr die gleiche Frage, also habe ich mir selbst einen Code angesehen. Folgendes habe ich gefunden (Konstanten waren ALL_CAPS übrigens in jedem Projekt):

╔═══════════════════════╦═════════════╦════════════╦══════════════╦════════════╦════════════╗
║      PHP Project      ║   Classes   ║  Methods   ║  Properties  ║ Functions  ║ Variables  ║
╠═══════════════════════╬═════════════╬════════════╬══════════════╬════════════╬════════════╣
║ Akelos Framework      ║ PascalCase  ║ camelCase  ║ camelCase    ║ lower_case ║ lower_case ║
║ CakePHP Framework     ║ PascalCase  ║ camelCase  ║ camelCase    ║ camelCase  ║ camelCase  ║
║ CodeIgniter Framework ║ Proper_Case ║ lower_case ║ lower_case   ║ lower_case ║ lower_case ║
║ Concrete5 CMS         ║ PascalCase  ║ camelCase  ║ camelCase    ║ lower_case ║ lower_case ║
║ Doctrine ORM          ║ PascalCase  ║ camelCase  ║ camelCase    ║ camelCase  ║ camelCase  ║
║ Drupal CMS            ║ PascalCase  ║ camelCase  ║ camelCase    ║ lower_case ║ lower_case ║
║ Joomla CMS            ║ PascalCase  ║ camelCase  ║ camelCase    ║ camelCase  ║ camelCase  ║
║ modx CMS              ║ PascalCase  ║ camelCase  ║ camelCase    ║ camelCase  ║ lower_case ║
║ Pear Framework        ║ PascalCase  ║ camelCase  ║ camelCase    ║            ║            ║
║ Prado Framework       ║ PascalCase  ║ camelCase  ║ Pascal/camel ║            ║ lower_case ║
║ SimplePie RSS         ║ PascalCase  ║ lower_case ║ lower_case   ║ lower_case ║ lower_case ║
║ Symfony Framework     ║ PascalCase  ║ camelCase  ║ camelCase    ║ camelCase  ║ camelCase  ║
║ WordPress CMS         ║             ║            ║              ║ lower_case ║ lower_case ║
║ Zend Framework        ║ PascalCase  ║ camelCase  ║ camelCase    ║ camelCase  ║ camelCase  ║
╚═══════════════════════╩═════════════╩════════════╩══════════════╩════════════╩════════════╝

Nachdem ich mir das alles angesehen hatte, entschied ich mich für:

  • ClassName
  • methodName
  • propertyName
  • function_name (für globale Funktionen gedacht)
  • $variable_name
208
programmer

Es gibt keinen "beliebtesten Codierungsstil", sondern ausschließlich die Konventionen und persönlichen Vorlieben Ihres Teams. Da Sie sich an Entwickler richten, sollten Sie nach gängigen Konventionen für Ihre Plattform suchen und die Konventionen befolgen, die Ihrer Meinung nach bequemer, lesbarer und Ihrem persönlichen Stil näher sind. Für PHP ist ein beliebter Satz von Namenskonventionen Zend Framework's .

Die Übereinstimmung mit der von Ihnen gewählten Namenskonvention ist wichtiger als die Konvention selbst.

24
yannis

Es ist zwar möglicherweise nicht so allgegenwärtig wie die Version Java, nach dem Apache PHP Style Guide wird sicherlich nicht schaden. Für Namenskonventionen:

Benennung: FunctionNamesLike, $ localVariableName, $ objectVariable, ClassNamesLike, MethodNamesLike, CONSTANTS_LIKE_THIS. Globale Namen (Klassen, Funktionen, Variablen, Definitionen) müssen vorangestellt werden, um Namenskonflikte mit PHP selbst) zu vermeiden. Dieser Ansatz umfasst das Verhindern von Präfixen, die mit PHP oder Abgesehen von Konstanten sollten Sie Unterstriche in Ihren Namen vermeiden, es sei denn, Sie simulieren Namespaces und sind sicher, dass Sie einmal zu echten Namespaces wechseln können PHP hat sie (und natürlich für Objektvariablen).

Danach wären Klassen- und Methodennamen PascalCased.

Es gibt auch eine Reihe anderer vernünftiger Styleguides, wie aufgeführt hier . Die meisten scheinen zuzustimmen, dass Klassennamen PascalCased sein sollten, aber einige, einschließlich des Style-Guides MIT), geben an, dass Methoden camelCased sein sollten.

Also, vier Jahre nachdem ich diese Frage ursprünglich beantwortet hatte, würde ich sagen, gehe mit der oben akzeptierten Antwort.

3
Matthew Flynn

Wir haben dieses seltsame System, in dem alles seine eigene Konvention hat:

  • KlassenAreLikeThis.
  • variablesAndFunctionsLikeThis
  • UNLESS_THEY_ARE_CONSTANTS
  • andMemberVariablesEndWith_
0
Edward Strange

Ich persönlich finde, dass Camelcase beim Codieren von Variablen natürlicher ist, aber da bei Variablen in PHP die Groß- und Kleinschreibung beachtet wird und es keinen Spaß macht, im Code nach einer Variablen zu suchen, die Sie vergessen haben, Camelcase zu erstellen, verwende ich immer Schlangenfall für Variablen.

Obwohl es wahr ist, dass die Konventionen veränderlich sind, kann es frustrierend sein, nach jemandem zu codieren, der camelcase für Variablen verwendet hat, und zu versuchen, sicherzustellen, dass Sie immer die Konvention für DIESE Variable verwenden.

0
Joomsavvy