Ergebnis 1 bis 8 von 8

Thema: Contao 3-Module auch in Contao 4 nutzen -> autoload.ini?

  1. #1
    Contao-Nutzer
    Registriert seit
    29.01.2013.
    Beiträge
    157

    Standard Contao 3-Module auch in Contao 4 nutzen -> autoload.ini?

    Hallo,

    wir haben eine Vielzahl an Modulen für Contao 3 geschrieben, die wir auch gern in Version 4 installieren würden.

    Die Entscheidung, ob es die Managed- oder die Standard-Edition werden soll, fiel uns etwas schwer, da es sich nur schwer abschätzen lässt, wenn man noch nicht soo stark mit Symfony gearbeitet hat. Wir haben uns erst einmal für die Standardvariante entschieden, da wir alle Features sehen wollten (ohne Einschränkung).

    Nun gibt es folgendes Problem:

    Nachdem wir alle composer.json-Dateien angepasst hatten, sodass diese dann eine Installation in Contao 4 erlaubten, wurden Fehler geworfen, die auf einem Reihenfolgeproblem basierten. Die autoload.ini wurde ignoriert. Wenn ich es richtig verstanden habe, muss man die Reihenfolge der Module selbst festlegen (in der AppKernel-Datei). Das gestaltet sich aber bei einer Vielzahl an Modulen zu einer problematischen Aufgabe, die nicht mal so eben erledigt ist (in Contao 3 machte das ja vermutlich eine Art Resolver). Zumal man das ja dann bei jedem neuen Projekt aufs neue machen müsste.

    Daher meine Fragen:

    1. Verstehe ich es richtig, dass man nur mit der Managed Edition die Abhängigkeiten in einem Modul berücksichtigt werden? (siehe https://docs.contao.org/books/extend...d-contao3.html)
    2. Und selbst wenn es dort geht: Muss ich für die Beachtung der autoload.ini nicht dann auch das Modul umstrukturieren (die in https://docs.contao.org/books/extend...d-contao3.html erwähnte Datei Plugin.php muss ja in ein src-Verzeichnis genauso wie auch der Rest des Moduls. Damit wäre das Modul dann aber inkompatibel zu Contao 3, oder?


    Also zusammengefasst: Gibt es eine Möglichkeit, Contao-Module in Version 3 und 4 lauffähig zu halten (inkl. der Ladereihenfolge und allem anderen)? Und falls ja, nur in der Managed-Variante?

    Danke im Voraus!

    Ciao The_Unknown

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Ich glaube die Information in der Dokumentation ist nicht mehr aktuell. In der Managed Edition muss eine Contao 3 Extension nicht mehr extra angepasst werden, die autoload.ini wird automatisch berücksichtigt.

  3. #3
    Contao-Nutzer
    Registriert seit
    29.01.2013.
    Beiträge
    157

    Standard

    Danke für den Hinweis! Ich habe mich noch mal etwas mehr eingelesen und nun wird es klarer (habe Dokumente gefunden, die ich vorher nicht gesehen hatte). Wenn ich es richtig verstanden habe, ist gerade dieses Reihenfolgehandling das Pro der Managed-Variante. Ich werde jetzt mal die Managed-Variante installieren. Damit sollte es ja dann gehen.

  4. #4
    Maintainer Avatar von xtra
    Registriert seit
    02.07.2009.
    Ort
    Tuebingen
    Beiträge
    2.007
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von The_Unknown Beitrag anzeigen
    Verstehe ich es richtig, dass man nur mit der Managed Edition die Abhängigkeiten in einem Modul berücksichtigt werden? (siehe https://docs.contao.org/books/extend...d-contao3.html)
    Korrekt. Das ist der Sinn dahinter.

    Zitat Zitat von The_Unknown Beitrag anzeigen
    Und selbst wenn es dort geht: Muss ich für die Beachtung der autoload.ini nicht dann auch das Modul umstrukturieren (die in https://docs.contao.org/books/extend...d-contao3.html erwähnte Datei Plugin.php muss ja in ein src-Verzeichnis genauso wie auch der Rest des Moduls. Damit wäre das Modul dann aber inkompatibel zu Contao 3, oder?
    Also zusammengefasst: Gibt es eine Möglichkeit, Contao-Module in Version 3 und 4 lauffähig zu halten (inkl. der Ladereihenfolge und allem anderen)? Und falls ja, nur in der Managed-Variante?
    Es geht, lohnt aber ab einer gewissen Komplexitaet einfach den Aufwand nicht.
    Die Meisten gehen dazu ueber fuer die 4 eine neue major zu bauen, welche dann nur noch fuer 4 ist. Die 3er werden als bugfixes noch eine weile supported (im alten major).
    Die Vorteile das Repo umzustrukturieren und gleich saubere services etc. zu verwenden ueberwiegen einfach massiv den "Vorteil" dass man eine Version fuer alles hat.
    Letztendlich bleibt es jedoch jedem selbst ueberlassen was er machen moechte.
    Bedenke stets: Wenn Du ungenaue oder unzureichende Angaben machst, so koennte dies die Bearbeitung deiner Frage endlos verzoegern (oder sogar dazu fyhren, dass ich zu viel nachdenken muss und die Antwort vergesse!). Kein Support per PN.

  5. #5
    Contao-Nutzer
    Registriert seit
    29.01.2013.
    Beiträge
    157

    Standard

    Danke für die Einordnung Schon klar, es geht uns auch nur um die Übergangsphase, da wir nicht alle Module auf einmal hochziehen können.

    Eine Frage zur Reihenfolgeproblamtik habe ich aber noch, da ich dazu keine Informationen gefunden habe. Ich habe jetzt eine Managed-Variante und alle Module soweit drin. Nun habe ich ein neues Modul geschrieben (gleich in der neuen Struktur, da es ein projektspezifisches Modul ist, dass ohnehin niemals in einer Contao 3-Instanz auftauchen wird). Dieses Modul ist nun aber abhängig von einem anderen Modul, welches noch in der alten Struktur vorliegt (und das auch eine zeitlang noch weiterhin muss). Also quasi Plugin.php (loadAfter()) zusammen mit autoload.ini. Kann man das beides zusammenbringen?

    Ich habe versucht in src/Resources/config/autoload.ini im neuen Modul das Altmodul zu require'n. Das scheint aber keine Auswirkung zu haben. Was kann ich hier tun?

  6. #6
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Wenn dann müsste es ja …/Resources/contao/config/autoload.ini sein (unabhängig davon ob das funktioniert oder nicht).

  7. #7
    Contao-Nutzer
    Registriert seit
    29.01.2013.
    Beiträge
    157

    Standard

    Sorry, vertippt, meinte natürlich src/Resources/contao/config/autoload.ini. Funktioniert aber leider nicht.

  8. #8
    Contao-Nutzer
    Registriert seit
    29.01.2013.
    Beiträge
    157

    Standard

    Das hier scheint zu gehen (rekonstruiert aus dem IniParser :

    Code:
    BundleConfig::create('Acme\MyBundle\MyBundle')
                    ->setLoadAfter(['Contao\CoreBundle\ContaoCoreBundle'])
                    ->setLoadAfter(['submissions'])

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •