2010-12-27 13 views
2

Wie organisieren Sie Ihren Drupal-Code? Ein riesiges Modul? Getrennte Module pro Funktion? Getrennte Module pro Codetyp (Themenfunktionen, Menü-Hooks, etc ...)?Organisieren von Drupal-Code

Ich habe angefangen zu versuchen, durch Feature zu organisieren, Module zu behandeln, wie sie Bibliotheken waren. Letztendlich sind die Dinge jedoch niemals perfekt enthalten ... Module wollen die Themenfunktionen des jeweils anderen verwenden, und Module tragen alle verschiedene Register zu einer gemeinsamen Seite bei - zwei Beispiele dafür, dass nicht immer klar ist, wo Code zu finden ist. Das verleitet mich dazu, alle Design-Funktionen zusammen zu halten, und alle hook_menus zusammen, aber das wäre aus anderen Gründen unangenehm ...

Angenommen, der gesamte Code ist zu spezifisch, um ihn zu teilen, also gibt es hier keinen Versuch, eigenständig zu machen beigetragene Module. Ich bin hauptsächlich besorgt um die Erhaltung von Gesundheit und Sauberkeit in einer großen Drupal-Site.

Antwort

1

Ich habe tendenziell einen Ordner mit einem Hauptmodul mit allen geteilten Funktionen und einer Vielzahl von Untermodulen, die durch logische funktionale Unterteilungen getrennt sind. Ich habe festgestellt, dass der einzelne große Modul-Ansatz das Auffinden von Dingen ziemlich unbestimmt macht.

Es macht wirklich keinen großen Unterschied, wenn Sie es nicht auf Drupal.org verteilen, also ist alles, was Ihnen sinnvoll erscheint, in Ordnung.

0

Ich lade alle Anpassungen in ein einzelnes Modul pro Projekt (Menü/Formular/Link ändert sich usw.). Wenn genügend Anpassungen vorgenommen werden, verzweige ich das ursprüngliche Modul oder erstelle ein neues Modul mit dem ursprünglichen Modul als Abhängigkeit. Es ist an diesem Punkt, dass es ziemlich subjektiv ist: Ich habe keine harte und schnelle Regel, die sagt "gabel ein Modul, wenn ich diese vielen Funktionspunkte oder Codezeilen erreiche".

Alles, was Funktionalität hinzufügt (was bedeutet, dass es nichts anderes überschreibt), geht in ein eigenes Modul.

Wenn neu erstellte oder gegabelte Module in anderen Projekten oder Kontexten verwendet werden können, werde ich sie in meinem persönlichen Repository veröffentlichen.

0

Ich verwende am häufigsten ein einzelnes Modul und eine Reihe von Include-Dateien, in denen ich meine Klassen speichern. Obwohl Views mehr als ein Modul verwendet, ist es ein großartiges Beispiel für diese Strategie. Werfen Sie einen Blick auf die Ansichten Modul enthält Ordner, um zu sehen, was ich meine.