Contao-Camp 2024
Ergebnis 1 bis 20 von 20

Thema: Contao Hello World Bundle (Erweiterungen für Contao 4)

  1. #1
    Jayster
    Gast

    Standard Contao Hello World Bundle (Erweiterungen für Contao 4)

    Ich habe in einem Tutorial beschrieben, wie man eine Contao Erweiterung auf Basis des Skeleton Bundles erstellt.

    Das Tutorial richtet sich an Entwickler, die bereits mit der Modul Erstellung für ältere Contao Versionen vertraut sind und nun wissen wollen, wie der Weg unter Contao ab Version 4 mit dem Symfony Framework geht.

    Es wird der komplette Weg gezeigt, vom Herunterladen des Skeleton Bundles bis zur Veröffentlichung der Erweiterung auf Packagist. Dabei wird auch auf die Themen Git, Composer, Namespaces, Autoloading, Unit Tests, Dependency Injection und PHP-CS-Fixer eingegangen.

    https://gist.github.com/joergmoldenh...dbc2d039095142

  2. #2
    Contao-Nutzer
    Registriert seit
    13.07.2013.
    Ort
    Nordsachsen
    Beiträge
    130

    Standard [erledigt] - ich bin leider nicht erfolgeich...

    Hallo Jayster,

    vielen Dank für dieses super Tutorial. Es ist für mich jedoch auch etwas peinlich das zu schreiben: aber ich bekomme es nicht zum laufen. Ich etnwickle zwar seit 2013 gelegentlich Contao-Module mit 3.5 LTS, aber auch wenn ich mich peinlich genau an Dein Tutorial halte, erhalte ich eine Masse an Fehlermeldungen - viele habe ich jetzt selbst umschifft - aber zum Laufen bekomme ich das HelloWorldBundle nicht. Besser gesagt, es lässt sich nicht installieren. Weder mit contao-manager noch mit composer via Kommandozeile.

    Das hat auch sehr wahrscheinlich nichts mit dem Tutorial zu tun. Ich dachte ursprünglich, der Umstieg auf Contao 4 wäre nicht übermäßig kompliziert, wenn man schon viele Module entwickelt hat. Das scheint nicht der Fall zu sein.

    Jetzt die Frage: Kann (besser will) mir jmd. behilflich sein, den Fehler zu finden? Also es geht nur darum, das hier genannte Tutorial zum Laufen zu bringen. Ich habe jetzt den Quellcode 3x auf Syntaxfehler gecheckt, aber ich finde keinen. Ich vermute mal, es ist einer... Wahrscheinlich habe ich irgendetwas irgendwo übersehen.

    Ich schicke hier erstmal keinen Quelltext mit, da ich nicht weiss, ob jmd. überhaupt Zeit und Nerven hat, das mit mir zusammen zu lösen.

    Ich würde mich aber freuen, wenn mir jmd. Tipps gibt. Läuft das HelloWorldBundle erst einmal, dann komme ich schon alleine weiter...

    Vielen Dank
    vom theo

    EDIT: das Problem hat sich erledigt, wir haben den (Tipp) Fehler gefunden... sorry und danke!
    Geändert von theobald (24.09.2019 um 11:07 Uhr)

  3. #3
    Contao-Nutzer
    Registriert seit
    21.08.2018.
    Beiträge
    14

    Standard [gelöst] The Symfony bundle "..." does not exist

    Hallo zusammen

    Eine super spannende Sache diese contao-bundles und der Beitrag mit der Vorlage ist der Hammer.

    Dennoch laufe ich immer wieder in einen Fehler und zwar erscheint die Meldung im Shell:

    Code:
      The Symfony bundle "Supsign\ThemerBundle\ThemerBundle" does not exist.
    Spannenderweise lief das Bundle ohne die Namensanpassung, also muss doch irgendwo nur ein Tippfehler sein, oder nicht?

    Mag jemand kurz über die 2 oder 3 files schauen?

    https://packagist.org/packages/supsign/themer
    Geändert von Fcocco (04.01.2020 um 10:13 Uhr)

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

    Standard

    Deine ThemerBundle Klasse befindet sich in einer Datei namens ContaoHelloWorldBundle.php

  5. #5
    Contao-Nutzer
    Registriert seit
    21.08.2018.
    Beiträge
    14

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Deine ThemerBundle Klasse befindet sich in einer Datei namens ContaoHelloWorldBundle.php
    Tausend Dank. Ich hatte nicht begriffen, dass der Name der Klasse gleich lautend sein muss wie die Datei ;-)

    So, nun kann es losgehen. Danke dir nochmals!

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

  7. #7
    Contao-Nutzer
    Registriert seit
    15.10.2015.
    Beiträge
    131

    Standard

    Möchte man eine Contao Erweiterung in mehreren Projekten einsetzen und/oder der Allgemeinheit zur Verfügung stellen, legt man dazu am besten ein Bundle an und veröffentlicht es auf Packagist
    Kann ich die Anleitung verwenden, wenn ich keinen Github oder Packagist Account anlegen möchte?
    Ich schreibe diverse Kunden spezifische Erweiterungen, aber noch im "alten Stil", würde dies gerne aktualisieren (was vielleicht dann Zukunftssicherer ist?), aber immer nur direkt auf dem Server und suche hierfür eine Anleitung der Anpassungen?

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

    Standard

    Zitat Zitat von windblick Beitrag anzeigen
    Kann ich die Anleitung verwenden, wenn ich keinen Github oder Packagist Account anlegen möchte?
    Ich schreibe diverse Kunden spezifische Erweiterungen, aber noch im "alten Stil", würde dies gerne aktualisieren (was vielleicht dann Zukunftssicherer ist?), aber immer nur direkt auf dem Server und suche hierfür eine Anleitung der Anpassungen?
    zB über Artifact packages: https://docs.contao.org/dev/guides/p...rcial-packages

  9. #9
    Contao-Nutzer
    Registriert seit
    15.10.2015.
    Beiträge
    131

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Kleine Test Erweiterung funktioniert, vorhandene anpassen scheint ja nicht sooo aufwändig zu werden, mal gucken. Danke!

  10. #10
    Contao-Nutzer
    Registriert seit
    20.03.2021.
    Beiträge
    8

    Standard Details unklar

    Nabend!

    Ich versuche gerade einen eigenen Frontend-Modultyp für Contao, hier vorliegend wohl eine Version 4.4, gemäß dieser Doku zu erstellen. Dabei fällt mir an dieser Stelle schon auf, dass immer von der Erstellung eines Moduls die Rede ist. Ich denke, damit ist gemeint, es soll ein neuer Modultyp erstellt werden.

    Um zunächst einmal überhaupt die Funktionalität zu haben, habe ich mich erst einmal auf das Kapitel "5. Die grundlegende Funktionalität implementieren" konzentriert. Dort ist von einem Ordner "src/Resources/contao" die Rede. Das ist ein relativer Pfad. Es ist nicht klar, wo der liegen soll. Anhand eines anderen Beispiel-Modultyps vermute ich, der soll unter "bundles/acme/ContaoHelloWorldBundle" im html-root-directory des Hosts liegen, richtig? Wenn nein, wo dann?

    Die dann angeführten Dateien habe ich alle, von diesem Ort aus relativ angelegt.

    Nun würde ich annehmen, dass ich bei Anlage eines neuen Frontend-Moduls, unter "Verschiedenes" den Modultyp "helloWorld" zur Auswahl angeboten bekomme. Das ist nicht der Fall.

    • Ist das die falsche Stelle, wo "helloWorld" erscheinen soll? Wenn ja: wo dann?
    • Ist der Modultyp nicht richtig registiert? Wie kann ich das nachverfolgen? Ich habe keinen Zugriff auf die Shell oder die Logs des Servers und das lässt sich auch nicht ändern.


    THX & cu,
    ada

  11. #11
    Contao-Fan Avatar von markocupic
    Registriert seit
    06.12.2010.
    Ort
    Oberkirch (Schweiz)
    Beiträge
    660

    Standard

    @der-ada
    Du könntest meinen bundle Generator ausprobieren.
    Damit kannst du eine Fake Erweiterung aus dem Contao Backend generieren.
    Auf dieser kannst du dann aufbauen.
    Die Erweiterung (das Bundle) wird im vendor Verzeichnis abgelegt.

    Suche im Contao Manager nach markocupic/contao-bundle-creator-bundle.
    Doku ist hier https://github.com/markocupic/contao...creator-bundle

    LG Marko
    Anfragen für bezahlten Support oder Extension-Programmierung via PN.

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

    Standard

    @der-ada willst du denn überhaupt eine eigene Erweiterung erstellen? Oder nur eine Applikationsanpassung für eine Contao Installation erstellen?
    » sponsor me via GitHub or PayPal or Revolut

  13. #13
    Contao-Nutzer
    Registriert seit
    20.03.2021.
    Beiträge
    8

    Standard Begriffe

    Hi!

    Vieln Dank für Deine Hilfe!

    Zitat Zitat von Spooky Beitrag anzeigen
    @der-ada willst du denn überhaupt eine eigene Erweiterung erstellen? Oder nur eine Applikationsanpassung für eine Contao Installation erstellen?
    Das weiss ich nicht.

    Im Moment versuche ich noch herauszufinden, was die Nomenklatur hierzu in Contao ist. Ist eine Erweiterung ein Bundle? Was ist eine Applikationsanpassung? Warum ist meistens von einem Frontend-Modul die Rede, im Backend heißt es aber dann Modultyp? Was ist der Unterschied? (Ich habe dazu schon eine Vermutung).

    Die Situation ist die, dass ich eine Contao 4.4-Installation mit einem Haufen kommerzieller Contao-3-Erweiterungen geerbt habe und diese nun um einige kleine Funktionen erweitern will. Dazu würde ich gerne ein kleines neues Modul/Erweiterung/Bundle/Miregal schreiben, das von einer der erwähnten Erweiterungen eine Klasse erbt und dabei die eine oder andere Methode überlädt oder hinzufügt. Wie das genannt wird, ist mir egal ;-)

    cu,
    ada

  14. #14
    Contao-Nutzer
    Registriert seit
    20.03.2021.
    Beiträge
    8

    Standard Bundle Creator

    Zitat Zitat von markocupic Beitrag anzeigen
    @der-ada
    Du könntest meinen bundle Generator ausprobieren.

    [...]

    Suche im Contao Manager nach markocupic/contao-bundle-creator-bundle.

    [...]
    Aus dem Manager, bei dem Versuch, das zu installieren:
    markocupic/contao-bundle-creator-bundle 1.4.0 requires contao/core-bundle ^4.9
    Heißt das, ich müsste das ganze Contao auf 4.9 upgraden, um ein neues Bundle zu generieren?

    cu,
    ada

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

    Standard

    Zitat Zitat von der-ada Beitrag anzeigen
    Im Moment versuche ich noch herauszufinden, was die Nomenklatur hierzu in Contao ist. Ist eine Erweiterung ein Bundle?
    Das ist hier erklärt: https://docs.contao.org/dev/getting-started/extension/

    Within this documentation, the terms package, bundle and extension are often used interchangably. For Composer, everything is a package, while a symfony-bundle or a contao-bundle is a specific type of package. Contao bundles are referred to as extensions within the Contao universe.


    Zitat Zitat von der-ada Beitrag anzeigen
    Was ist eine Applikationsanpassung?
    Anpassungen für eine einzelne Applikation - also für eine einzelne Contao Installation (sei es eine DCA Anpassung, oder ein Hook für eine einzelne Contao Installaiton, oder nur ein Frontend Modul für eine einzelne Contao Installation, etc.).



    Zitat Zitat von der-ada Beitrag anzeigen
    Warum ist meistens von einem Frontend-Modul die Rede, im Backend heißt es aber dann Modultyp? Was ist der Unterschied? (Ich habe dazu schon eine Vermutung).
    Mit "Modultyp" meinst du das Feld Modultyp in den Einstellung eines einzelnen Fontendmoduls, mit dem du den Typ des Frontendmoduls einstellen kannst.
    » sponsor me via GitHub or PayPal or Revolut

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

    Standard

    Zitat Zitat von der-ada Beitrag anzeigen
    Aus dem Manager, bei dem Versuch, das zu installieren:


    Heißt das, ich müsste das ganze Contao auf 4.9 upgraden, um ein neues Bundle zu generieren?

    cu,
    ada
    Das Paket markocupic/contao-bundle-creator-bundle brauchst du nur dann, wenn du auch tatsächlich eine Erweiterung programmieren willst. Bisher hört es sich nicht so an, als würdest du das tatsächlich machen wollen.

    Unabhängig davon wäre es natürlich von Vorteil, wenn du auf zumindest Contao 4.9 aktualisierst, denn Contao 4.4 bekommt keine Bugfix-Updates mehr und hat in diesem Sinne das Lebensende erreicht.
    » sponsor me via GitHub or PayPal or Revolut

  17. #17
    Contao-Nutzer
    Registriert seit
    20.03.2021.
    Beiträge
    8

    Standard

    Hi!

    Danke für die Erklärungen.

    Zitat Zitat von Spooky Beitrag anzeigen
    Das scheint hilfreich zu sein.


    Zitat Zitat von Spooky Beitrag anzeigen
    Mit "Modultyp" meinst du das Feld Modultyp in den Einstellung eines einzelnen Fontendmoduls, mit dem du den Typ des Frontendmoduls einstellen kannst.
    Genau so einen neuen "Modultyp" brauche ich. Damit kann ich dann ein oder zwei neue Module auf der hier gegenständlichen Webseite implementieren. Der Modultyp soll auf einem Modultyp einer Contao-3-Erweiterung, die irgendwie in dieser Contao-4.4-Installation läuft, basieren und im wesentlichen nur den betreffenden Controller ein wenig erweitern, i.e. auf einer anderen als der dort fest verdrahteten Tabelle operieren.

    Um meinen Kram sauber von dem bestehenden zu trennen, hatte ich den Weg eines eigenen "Minibundles" angedacht. So würde ich das zumindest in Laravel machen. Wenn es einen besseren Weg gibt, bin ich natürlich für jede Anregung mehr als dankbar :-)

    thx & cu,
    ada

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

    Standard

    Für die Entwicklung von Legacy Frontend Modulen, also Frontend Modulen wie man sie vor Contao 4.9 gemacht hat, gibt es tatsächlich keine genaue Dokumentation.

    Falls du aber auf Contao 4.9 aktualisieren willst/kannst, könntest du von bestehenden, alten Frontend Module so extenden: https://docs.contao.org/dev/guides/f...existing-class
    » sponsor me via GitHub or PayPal or Revolut

  19. #19
    Contao-Nutzer
    Registriert seit
    20.03.2021.
    Beiträge
    8

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Falls du aber auf Contao 4.9 aktualisieren willst/kannst
    Ich wäre mehr als froh, das tun zu können, befürchte aber, dass dann diese kommerzielle Contao-3-Erweiterung nicht mehr funktioniert. Könnte ich durch ein Backup / einen Datenbank-Dump wieder zurück zu der bestehenden 4.4.x, wenn nach dem Update auf 4.9 diese 3er-Erweiterung nicht mehr geht?

    Gibt es denn eine Dokumentation, wie man Contao-3-Erweiterungen schreibt?

    thx & cu,
    ada

  20. #20
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.056
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Das Update solltest du freilich in einer Kopie der Installation erst einmal testen. Falls das aus Lizenzgründen der kommerziellen Erweiterungen nichtz geht (Erweiterung funktioniert z.B. geht nur mit einer bestimmten Domain), dann mache einen SQL-Dump der Datenbank und sichere einfach die ganze Installation auf Dateiebene (Verzeichnisse und Dateien). Für die Datenbanksicherung kann ich die Erweiterung BackupDB empfehlen oder halt phpMyAdmin oder auch per mysql in der Konsole. Bei phpMyAdmin darauf achten, dass Binärdaten als Hex-Werte gespeichert werden. Obwohl, für das Rückspielen auf dem selben Server und dem selben phpMyAdmin dürfte das nicht notwendig sein. Schadet aber auch nicht.
    So sollte alles im Falle eines Misserfolgs beim Update schnell wieder herstellbar sein.

    Ich fürchte, die Dokumentation zur Erstellung einer Contao 3 Erweiterung ist auch nicht wesentlich besser als für Contao 4.4. Das Update auf 4.9 wäre hier wohl der Königsweg, sofern es funktioniert.

Aktive Benutzer

Aktive Benutzer

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

Lesezeichen

Lesezeichen

Berechtigungen

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