Seite 2 von 2

Re: Neue TemplateEngine: Twig

Verfasst: Di 12. Apr 2022, 11:25
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.

Re: Neue TemplateEngine: Twig

Verfasst: Di 12. Apr 2022, 11:35
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.

Re: Neue TemplateEngine: Twig

Verfasst: Di 12. Apr 2022, 11:40
von shadowcat
Ach, da ist so vieles unschön... :oops:

Re: Neue TemplateEngine: Twig

Verfasst: Mi 13. Apr 2022, 22:09
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 ;-)

Re: Neue TemplateEngine: Twig

Verfasst: Do 14. Apr 2022, 08:56
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.

Re: Neue TemplateEngine: Twig

Verfasst: Di 19. Apr 2022, 09:39
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.

Re: Neue TemplateEngine: Twig

Verfasst: Di 19. Apr 2022, 11:47
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:

Re: Neue TemplateEngine: Twig

Verfasst: Di 19. Apr 2022, 12:25
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...

Re: Neue TemplateEngine: Twig

Verfasst: Di 19. Apr 2022, 12:44
von shadowcat
Das eine schließt das andere nicht aus. ;)