Große Komponente aufteilen

  • Hallo,


    da meine Komponente mittlerweile sehr groß und unübersichtlich geworden ist, würde ich diese gerne aufteilen. Dabei tauchen ein paar Fragen auf.

    • Ich habe einige Helper die ich dann in mehreren Komponenten bräuchte. Gibt es da eine andere Möglichkeit als diese in einer Komponente zu hinterlegen und mit folgenden Code einzubinden?

      Code
      JLoader::register('HelperClass', JPATH_ADMINISTRATOR . '/[com_name]/helpers/helper.php');


      Wie handhabt ihr solche Sachen?

    • Werden die Komponenten in der Reihenfolge installiert, in der sie in der Manifest-Datei der Package-Datei angegeben werden? Oder werden sie in einer beliebigen Reihenfolge installiert? Ich frage deshalb, weil zwei Komponenten jeweils einen Fremdschlüssel auf die Datenbank-Tabelle einer anderen Komponente haben. Oder ist es sinnvoller ohne Fremdschlüssel zu arbeiten? Wie macht ihr das?

    Ich wünsche euch einen sonnigen Sonntag-Nachmittag.
    René Majewski

  • Man kann ja die Vererbung nutzen - das spart oft die Helper.
    Ich frage mich, ob es sinnvoll ist, etwas aufzuteilen was ineinander greift und was so und so zusammen installiert werden muss.
    @Terra, inwiefern ist deine Komponente unübersichtlich? Wenn view-model-controller sauber getrennt sind sollte es da kein Problem geben. Zwei Komponenten sind ja da insgesamt auch nicht kleiner.

  • Ich meine mit unübersichtlich zu viele Dateien. Ohne Grafiken sind es fast 300. Im Frontend ist es schön übersichtlich, da dort fast nur Ausgaben gemacht werden, habe ich die Listen und Detail-Ausgabe zu einer View mit verschiedenen Templates zusammengefasst. Im Backend gelingt mir das nicht so richtig. Da ist halt eine View für die Übersicht-Tabelle und eine View für das Eingabeformular da.


    Es ist ein Intranet. Unter anderem ist eine Verwaltung der Mitarbeiter und Teilnehmer vorgesehen, Verwaltung des Büromaterial, Bestellung von Mittagessen, Verwaltung der Kaffeekasse, Telefonverzeichnis, etc. Wegen spezieller Anforderungen, habe ich dafür keine fertigen Komponenten gefunden.


    Zum Beispiel: Die Kaffeekasse wird von Teilnehmern verwaltet. Da diese in Regelmäßigen Abständen wechseln, soll bei jeden Vorgang der dort gespeichert wird der Teilnehmer mit gespeichert werden. So ergibt sich, dass immer eine Abhängigkeit zur Teilnehmer-Tabelle besteht.


    Meine Überlegung ist:
    - Teilnehmer und Mitarbeiter zu einer Komponente zusammenfassen
    - Büromaterial-Verwaltung als Einzelkomponente
    - Bestellung des Essens und die Kaffeekasse als eine Komponente


    An eine Library habe ich auch schon gedacht. Aber wegen 2 oder 3 Helper-Klassen denke ich, wäre das überdimensioniert. In den Helper-Klassen sind hauptsächlich Methoden implementiert, die wiederkehrenden HTML-Code erzeugen. Zum Beispiel habe ich einen Helper der mir Bilder einfügt. Den brauche ich beispielsweise bei den Mitarbeitern für ihre Fotos und beim Büromaterial für die Abbildungen. Da wüsste ich nicht, wie ich das durch Vererbung lösen sollte.


    Ich muss dazusagen, die letzten 6 Jahre habe ich mit Joomla nicht mehr gearbeitet. Es ist vieles anders geworden, dafür einfacher.

  • Das sieht ganz gut aus, die Komponenten nach ihren Aufgaben aufzuteilen.
    Das Backend ist ja schon so standardisiert, dort würde ich nicht versuchen, aus dem Standard auszubrechen.
    Ich spreche hier nur für mich - wenn es ein intranet ist würde ich für die Helperklassen eine pragmatische Lösung wählen und die Klassen von anderen Komponenten mit verwenden. Viele Dateien sind an sich nichts schlechtes,
    Und die Komponenten einzeln nacheinander von Hand installieren - wie oft macht man das denn schon in einem Intranet?

  • Und die Komponenten einzeln nacheinander von Hand installieren - wie oft macht man das denn schon in einem Intranet?


    Im Moment oft. :D Ein bis zweimal am Tag. Zum ausprobieren und programmieren, nehme ich nicht den Intranetserver. Es wäre ja nur ein Package zu installieren, was dann alle anderen Komponenten beinhaltet.


    Im Moment werde ich erst einmal die angefangen Sachen fertig machen. Wenn die dann soweit sind, werde ich die Komponente nach ihren Aufgaben aufteilen. Mir geht es im Moment um die Planung.


    Viele Dateien sind an sich nichts schlechtes


    Finde ich auch. Mit den verschiedenen Komponenten möchte ich es meinen Nachfolger einfacher machen sich einzuarbeiten.