Neue TemplateEngine: Twig

Benutzeravatar
shadowcat
Administrator
Beiträge: 5283
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Neue TemplateEngine: Twig

Beitrag von shadowcat »

creativecat hat geschrieben:
Di 12. Apr 2022, 09:26
Puh... Den nächsten Zopf abschneiden?
Tja, dann wird es aber keine 1.5, sondern eine 2.0. Das sind keine Änderungen für ein Minor Release.
My software never has bugs, it just develops random features.
If it’s not broken, keep fixing it until it is
Benutzeravatar
creativecat
Beiträge: 1430
Registriert: Mi 6. Feb 2013, 12:41
Kontaktdaten:

Re: Neue TemplateEngine: Twig

Beitrag von creativecat »

Ja, also das muss auf jeden Fall eine 2.0 werden.
Das mit dem LoaderError ist seltsam. Da müsste im Treiber in der output() und get() jeweils folgendes stehen:

Code: Alles auswählen

      $this->loader->setPaths([
        $this->paths["current"],
        $this->paths[CAT_Backend::isBackend() ? "backend" : "frontend"],
      ]);
Dadurch werden ein Pfad und der Fallback-Pfad gesetzt. Ist gerade noch unschön, weil das bei jedem get() und bei jedem output() erneut gemacht wird, aber ich wollte noch nicht in der DriverDecoder rumwerkeln ;-) Da müsste man vermutlich die setPath() anpassen, damit das sauberer wäre.
Benutzeravatar
shadowcat
Administrator
Beiträge: 5283
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Neue TemplateEngine: Twig

Beitrag von shadowcat »

Ach, da ist so vieles unschön... :oops:
My software never has bugs, it just develops random features.
If it’s not broken, keep fixing it until it is
Benutzeravatar
creativecat
Beiträge: 1430
Registriert: Mi 6. Feb 2013, 12:41
Kontaktdaten:

Re: Neue TemplateEngine: Twig

Beitrag von creativecat »

Ich hab nun freshcat und mojito ziemlich auf Twig umgeschrieben und meinen aktuellen Stand in den Branch 2.0 hochgeladen... Etwas Aufwand, aber machbar ;-)
Benutzeravatar
shadowcat
Administrator
Beiträge: 5283
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Neue TemplateEngine: Twig

Beitrag von shadowcat »

Klingt doch gut! Für Module können wir ja Dwoo noch mitliefern, wir müssen uns dann nur was überlegen wegen der $parser Variablen. Am besten wäre es, für Twig eine neue Variable einzuführen. $te oder so.
My software never has bugs, it just develops random features.
If it’s not broken, keep fixing it until it is
Benutzeravatar
creativecat
Beiträge: 1430
Registriert: Mi 6. Feb 2013, 12:41
Kontaktdaten:

Re: Neue TemplateEngine: Twig

Beitrag von creativecat »

Wir könnten auch den $parser so umbauen, dass er in Abhängigkeit des im Modul/Template angegebener TE automatisch die richtige TE aufruft und per default auf Dwoo geht. Alle neuen Module/Templates müssen dann sagen, welche TE sie gerne hätten.
Die unterschiedlichen TEs sind in einem Array im Parser als Instanzen hinterlegt und werden erst instanziert, wenn sie das erste Mal angefordert werden...

Also vor der Einbindung eines Modules wird eine Methode $parser->setTE($addonDir) augerufen, welche im aktuell aufgerufenen Modul die info.php ausliest (oder sich die Info aus der DB holt) und gleich die TE zum Modul zwischenspeichert.

In späteren Versionen können wir dann den default-Wert auf Twig umstellen.
Benutzeravatar
shadowcat
Administrator
Beiträge: 5283
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Neue TemplateEngine: Twig

Beitrag von shadowcat »

Kann man so machen, ich fände es allerdings viel einfacher, eine neue Variable einzuführen. Dann muss auch der Modulautor nichts weiter beachten als: Benutzt Du noch die alte TE, nimmst Du $parser, benutzt Du Twig, nimmst Du $twig. Keine große Logik notwendig. :mrgreen:
My software never has bugs, it just develops random features.
If it’s not broken, keep fixing it until it is
Benutzeravatar
creativecat
Beiträge: 1430
Registriert: Mi 6. Feb 2013, 12:41
Kontaktdaten:

Re: Neue TemplateEngine: Twig

Beitrag von creativecat »

Hm... wenn man Smarty einbauen wollen würde oder doch wieder eine ganz andere, dann wäre das mit einer Array-Lösung und unterschiedlichen Instanzen irgendwie modularer.
Aber ja, einfacher wäre sicherlich die "$twig"-Lösung...
Benutzeravatar
shadowcat
Administrator
Beiträge: 5283
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Neue TemplateEngine: Twig

Beitrag von shadowcat »

Das eine schließt das andere nicht aus. ;)
My software never has bugs, it just develops random features.
If it’s not broken, keep fixing it until it is
Gesperrt