Die Standards für WebsiteBaker wurden jetzt auch nicht neu erfunden und willkürlich festgelegt, sondern wir verwenden prinzipiell die selben, die auch sehr viele andere namhafte Projekte und große Frameworks (siehe PHP-FIG Referenzliste) benutzen.
Die grundlegenden Standards für WebsiteBaker sind die Standards PSR-1 / PSR-12 und PSR-4 der PHP Framework Interop Group.
Auf den nachfolgenden Seiten haben wir die Originale ins Deutsche übersetzt. Vielleicht nicht ganz wörtlich, jedoch absolut sinngemäß. Manche mögen sich an der recht strikten Ausdrucksweise (das MUSS!, das DARF NICHT! etc.) stören. Diese Ausdrücke sind aber exakt so aus den originalen PSRs, die sich wiederum strikt an RFC 2119 halten, übernommen worden und sollten auch exakt so verstanden werden.
Die wichtigsten Schlüsselworte wurden/werden nach folgendem, in RFC2119 definierten Sinn übersetzt:
englisch | deutsch | Erklärung |
---|---|---|
MUST / REQUIRED / SHALL | MUSS / ERFORDERLICH / SOLL | es ist ein absolutes Erfordernis der Spezifikation. |
MUST NOT / SHALL NOT | DARF NICHT / SOLL NICHT | es ist ein absolutes Verbot durch die Spezifikation. |
SHOULD / RECOMMENDED | SOLLTE / EMPFOHLEN | Auch das ist ein absolutes Erfordernis/Verbot. Jedoch kann es in wenigen Ausnahmefällen gute Gründe geben, diesen Punkt zu ignorieren. Dazu sollten aber die vollen Auswirkungen der Missachtung gut verstanden sein und sehr genau überlegt werden ob die Abweichung tatsächlich erforderlich ist. |
SHOULD NOT / NOT RECOMMENDED | SOLLTE NICHT / NICHT EMPFOHLEN |
|
MAY / OPTIONAL | KANN / OPTIONAL | hiermit wird eine wirkliche Option bezeichnet, die sein kann aber nicht sein muss |
Mit jeder weiteren Version von WebsiteBaker entfernt sich der Programmierstil immer weiter vom bisherigen, seit 15 Jahren gewohnten, 'anarchischen' Stil, hin zu einer immer modulareren, jedoch zwangsweise auch an strenge Schnittstellen gebundenen Programmierweise. Das wird vor allem von Addon-Programmierern ein konsequentes Umdenken erfordern.
Derzeit, also bis zur 2.10 ist die Einhaltung vieler Regeln noch freiwillig, in der 2.12 wird vieles bereits deprecated und nach der 2.12 werden nach und nach viele der Vorgaben zwingend werden. Das alles hört sich für viele sehr einschränkend an, was aber gerne in Kauf genommen wird, da genau diese Einschränkungen letztendlich für eine stabile Modularität, für stabile Flexibilität und für Austauschbarkeit, Wiederverwendbarkeit und vor allem Wartungsfreundlichkeit von Code sorgen werden.
.. die eigentlich so, unabhängig von WB, in jedem halbwegs professionellen Projekt gelten sollten und Grundlage jeder ernsthaften Programmierer-Ausbildung sind.
Addons…
für spätere Versionen (nach 2.10.x) werden noch weitere Einschränkungen kommen. Siehe die jeweiligen Abschnitte dieser Dokumentation.