... und sorgt besonders beim Debuging für zusätzlichen Spaß!
Ankündigung
Einklappen
Keine Ankündigung bisher.
Kontrollstrukturen in Template engine
Einklappen
Neue Werbung 2019
Einklappen
X
-
Zitat von dr.e. Beitrag anzeigenAllein die Notwendigkeit eine Manipulation des Gültigkeitsbereiches vornehmen zu müssen riecht nach workaroud...
Es war nur als Beispiel gedacht wie man schnell eine Template Engine bauen kann die schnell ist und keine weitere zusätzliche Syntax erfordert.Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.
Kommentar
-
Zitat von phpdummi Beitrag anzeigen... und sorgt besonders beim Debuging für zusätzlichen Spaß!Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.
Kommentar
-
Ich find diese Diskussion eigentlich sehr interesant zumal sich hier zeigt wo die Prioritäten sich unterscheiden und vielleicht lassen sich auf diesen Weg neue Möglichkeiten finden eine schicke kleine Template Engine umzusetzen.Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.
Kommentar
-
@HStev:
nenn mir eine Alternative um PHP Code direkt auszuführen ohne den Output direkt auszugeben etwa eval?
Es war nur als Beispiel gedacht wie man schnell eine Template Engine bauen kann die schnell ist und keine weitere zusätzliche Syntax erfordert.
vielleicht lassen sich auf diesen Weg neue Möglichkeiten finden eine schicke kleine Template Engine umzusetzen.Viele Grüße,
Dr.E.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design [B]before[/B] you start to write code!
2. Discuss and review it together with [B]experts[/B]!
3. Choose [B]good[/B] tools (-> [URL="http://adventure-php-framework.org/Seite/088-Why-APF"]Adventure PHP Framework (APF)[/URL][URL="http://adventure-php-framework.org"][/URL])!
4. Write [I][B]clean and reusable[/B][/I] software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Kommentar
-
Zitat von David Beitrag anzeigennoch eine...Viele Grüße,
Dr.E.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design [B]before[/B] you start to write code!
2. Discuss and review it together with [B]experts[/B]!
3. Choose [B]good[/B] tools (-> [URL="http://adventure-php-framework.org/Seite/088-Why-APF"]Adventure PHP Framework (APF)[/URL][URL="http://adventure-php-framework.org"][/URL])!
4. Write [I][B]clean and reusable[/B][/I] software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Kommentar
-
Zitat von dr.e. Beitrag anzeigenMit einer PHP-Template-Engine kann ich dir nicht dienen, mit einer XML-/XSL-Engine schon.Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.
Kommentar
-
Um mal auf die eigenen Kontrollstrukturen zurück zu kommen:
habt ihr euch eigentlich mal überlegt, wie es gemacht wird, diese Kontrollstrukturen wieder in die PHP-Versionen zurück zu wandeln?
Die werden ja nicht einfach mal fix wieder ersetzt.
Naja ersetzt werden sie schon, jedoch ist das gar nicht so einfach.
Geregelt wird sowas von regular expressions.
Wenn man einen Text nun ersetzen will, erkennt man ihn ja anhand der Delimiter.
Wenn die Delimiter jedoch länger als 1 Zeichen lang sind, artet der zu erstellende pattern jedoch zu echtem gehirnjogging aus.
Zumindest muss man hier wissen was man macht.
Daher rate ich gänzlich von solch einem system ab.
Auch weil es einfach ineffizienter arbeitet.
LG
devildeathDas http://www.php.net/manual/en/index.php(PHP-Manual) sollte für PHP-Kranke die Gutenacht-Geschichte sein
Kommentar
-
Sollte aber dieses Problem (das Finden/Verstehen von Kontrollstrukturen) nicht durch APC & Co. vollständig gelöst sein?
@dr.e.: Ich möchte deine Benchmarks nicht anzweifeln, aber ich kann dennoch nicht verstehen, wie Transformierungen über XSLT schneller sein können, als gecachte PHP-Scripts.
Ich hatte vor einigen Jahren recht viel mit Java/XSLT zu tun. Damals fand ich XSLT garnicht so atemberaubend schnell. Oay, die XML-Dokumente waren teils einige MB groß . -- Oder ist libxml/libxslt so feinoptimiert?
Für mich wäre eine XML-basierte Template-Lösung auch sehr interessant/elegant, allerdings hielt/halte ich das DomDocument-Objekt (vorallem wenn viele davon nötig sind [Subtemplates]) für zu teuer.
PS.: Willkommen devildeath!
Kommentar
-
Zitat von Quadaptor Beitrag anzeigen@dr.e.: Ich möchte deine Benchmarks nicht anzweifeln, aber ich kann dennoch nicht verstehen, wie Transformierungen über XSLT schneller sein können, als gecachte PHP-Scripts.
Ich hatte vor einigen Jahren recht viel mit Java/XSLT zu tun. Damals fand ich XSLT garnicht so atemberaubend schnell. Okay, die XML-Dokumente waren teils einige MB groß . -- Oder ist libxml/libxslt so feinoptimiert?
Was Byte-Code-Caching angeht, so habe ich davon bei den Tests Abstand genommen, da so die Stärken bzw. Schwächen der eigentlichen Implementierung besser hervortreten. Natürlich habe ich neben den Tests Versuche mit aktiviertem mmcache, apc und eaccellerator unternommen. Es zeigte sich jedoch, dass die PHP-Template-Lösungen bessere Ergebnisse als ohne Caching erziehlten, das Endergebniss wurde jedoch dadurch nicht beeinflusst.
Zitat von Quadaptor Beitrag anzeigenFür mich wäre eine XML-basierte Template-Lösung auch sehr interessant/elegant, allerdings hielt/halte ich das DomDocument-Objekt (vorallem wenn viele davon nötig sind [Subtemplates]) für zu teuer.Viele Grüße,
Dr.E.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design [B]before[/B] you start to write code!
2. Discuss and review it together with [B]experts[/B]!
3. Choose [B]good[/B] tools (-> [URL="http://adventure-php-framework.org/Seite/088-Why-APF"]Adventure PHP Framework (APF)[/URL][URL="http://adventure-php-framework.org"][/URL])!
4. Write [I][B]clean and reusable[/B][/I] software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Kommentar
-
Danke für den tollen Empfang hier
Nunja die können schon abgenommen werden, nur wenn man einfach mal aus spass und wegen des Lerneffekts ein Templatesystem entwerfen will, sollte man doch auch das finden und ersetzen von Kontrollstrukturen mal versuchen.
Ich weiß das regular expressions von vielen vollkommen gemieden werden, weil sie einfach eine Nummer zu extrem aussehen.
Doch genau daran sollte man sich mal versuchen.
Die meisten wissen ja gar nicht, was man da alles entdecken kann.
Und ich finde diesen Teil der Übung eigentlich am schwersten, also warum den schwersten meiden?
Übung macht den Meister
Z.B.: Nur mal vorstellen, wenn man einen Text Markieren will, der in " " geschrieben ist und aber auch mit Backslash maskierte Anführungszeichen hat:
'/[^\\\"]*(\\\.[^\\\"]*)*/'
Ich will mir das gar nicht vorstellen, wie das bei größeren Delimitern aussehen soll ^^
Und das dann noch in der Performance optimieren...
Naja egal. Ich finde man sollte sich das mal antun, weil das auch eine wirklich eigene Form von Kunst darstellt.
LG
devildeath
Das http://www.php.net/manual/en/index.php(PHP-Manual) sollte für PHP-Kranke die Gutenacht-Geschichte sein
Kommentar
-
Hallo devildeath,
[..] nur wenn man einfach mal aus spass und wegen des Lerneffekts ein Templatesystem entwerfen will [..]
Übung macht den Meister
Und das dann noch in der Performance optimieren...Viele Grüße,
Dr.E.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design [B]before[/B] you start to write code!
2. Discuss and review it together with [B]experts[/B]!
3. Choose [B]good[/B] tools (-> [URL="http://adventure-php-framework.org/Seite/088-Why-APF"]Adventure PHP Framework (APF)[/URL][URL="http://adventure-php-framework.org"][/URL])!
4. Write [I][B]clean and reusable[/B][/I] software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Kommentar
-
Zitat von dr.e. Beitrag anzeigenIch hab bisher noch niemanden wirklich verstanden, der aus der von dir genannten Motivation ein Template-System entwerfen wollte. Davon abgesehen ist auch bei den Aktionen nie etwas sinnvolles rausgekommen.Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.
Kommentar
Kommentar