2012-11-26 14 views

Antwort

9

Es gibt keine Konvention dafür; besonders in PHP. Dies kann alles organisiert werden, wie Sie möchten.

Mit den Zusätzen von namespaces in PHP 5.3, sehe ich nicht die Notwendigkeit Abstract oder Interface Präfixe/Suffixe zu den tatsächlichen Klassennamen hinzuzufügen.

Einfach die Dinge so nennen, wie sie sind!

+0

Es lohnt sich darauf hinzuweisen, dass, wenn Sie das PSR durch Gesetze einhalten wollten, es besagt, dass Sie "Interface" als ausreichend für Schnittstellen einschließen müssen. http://www.php-fig.org/bylaws/psr-naming-conventions/ – wired00

8

Obwohl es keine Konvention gibt, denke ich, es ist eine gute Praxis mit Abstract Präfix und Interface Suffix für entsprechende Komponenten. Es hilft, den Code auf einen Blick besser zu verstehen, IMO.

1

Konventionen sind, wie Sie sie sehen: Die Sprache selbst erzwingt keine Konventionen außer denen, die den Parser in die Lage versetzen, Ihren Code zu lesen. Grundsätzlich sollten Sie Konventionen für ein bestimmtes Projekt oder besser für alle Ihre Projekte einrichten. Allerdings kann das Arbeiten in Teams von verschiedenen Leuten dazu führen, dass Konventionen nicht eingehalten werden, es hängt wirklich von den Programmierern ab.

Aus meiner Erfahrung würde ich vorschlagen, etwas wie "Design-by-Contract" zu folgen. Benennen Sie Ihre Verträge (Schnittstellen) so, wie Sie Ihre Implementierungsklasse nennen würden, und geben Sie Ihrer Implementierung dann einen spezifischeren Namen (oder Fallback für MyContractNameImpl, das ich meistens von Java her kenne). Außerdem wissen viele moderne IDEs, ob Ihre Klasse eine Schnittstelle oder eine Zusammenfassung ist, also ist es wirklich nicht nötig, das in ihren Namen zu schreiben. Ich finde auch Verträge, die wie "IMyContract" genannt werden, aus den gleichen Gründen nicht wirklich gut.

1

Benennen von abstrakten Klassen und Schnittstellen unter Verwendung von:

  • Zusammenfassung *
  • * Schnittstelle

Wird Ihre Code-Basis sauber, schön und klar, um Ihr Team zu halten, was sind die Prototypen, was sind die Verträge und was sind die konkreten Implementierungen.

Namenskonventionen sind hier, um unsere Produktivität unter allen Umständen zu erhöhen, daher ist "Name, wie Sie möchten" bei weitem keine gute Idee.

Obwohl FIG-Gruppe keine Namenskonvention für abstrakte Klassen und Schnittstellen vorschlägt - wenn Sie größere Open-Source-PHP-Projekte untersuchen, werden Sie sehen, dass fast alle diese Konvention verwenden.

Verwandte Themen