FAQ Suchen Synapsis Wiki Projekte Mitgliederliste Benutzergruppen Profil Einloggen, um private Nachrichten zu lesen Registrieren Login

T-REx 2.0 - Template Engine
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Syncom.org Foren-Übersicht -> Tools
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
PhP0Kid
Profi-Benutzer


Anmeldedatum: 05.01.2007
Beiträge: 415
Wohnort: Ellwangen (nahe Aalen)
Programmiersprachen: PHP, CSS, (X)HTML, SQL, JavaScript, C++ (nach Erfahrung von links nach rechts)

BeitragVerfasst am: 14.08.2007, 09:06    Titel: T-REx 2.0 - Template Engine Antworten mit Zitat

.. so heißt meine kleine Template-Engine, über deren erste Version ich mir damals im April sooo viele Gedanken gemacht hatte und die eine nette Diskussion auf Funpic anregte Mr. Green
Und jetzt endlich: Version 2.0 ist draußen, kleine Updates in Arbeit *freu* *freu* *freu*

Wens interessiert: www.Julian-Stier.de

Zeigt in etwa meinen aktuellen Programmierstand / -stil, wenn auch ich mittlerweile durch C++ schon wieder etwas mehr an meinen Standards arbeite Smile

Über Feedback würde ich mich freuen.


PHP0Kid
Julian



PS: das Ding steht unter GPL Wink *G* Cool Razz



trex2.0.zip
 Beschreibung: T-REx 2.0 - TemplateEngine
Download
 Dateiname:  trex2.0.zip
 Dateigröße:  17.27 KB
 Heruntergeladen:  20 mal


_________________
http://www.Julian-Stier.de | T-REx 2.2

Fertiges ( 16.7.08 ):
* Julian-Stier.de, Blog - Juli/August 2008

Aktuelles ( 16.7.08 ):
* T-REx 2.3.0 - release 2008/2009
* GlobalIndustry - release 2008/2009


Zuletzt bearbeitet von PhP0Kid am 20.01.2008, 12:24, insgesamt 4-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
thewuz
Erfahrener Benutzer


Anmeldedatum: 21.01.2007
Beiträge: 228
Wohnort: Nähe Wien
Programmiersprachen: PHP, HTML, JAVA, JavaScript
Compiler: Eclipse für JAVA

BeitragVerfasst am: 14.08.2007, 21:23    Titel: Antworten mit Zitat

hm, hab keine lust mich durch meterweise code zu wühlen Mr. Green

könntest du vll die vor- und eventuellige nachteile aufzählen?

mfg
thewuz
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
PhP0Kid
Profi-Benutzer


Anmeldedatum: 05.01.2007
Beiträge: 415
Wohnort: Ellwangen (nahe Aalen)
Programmiersprachen: PHP, CSS, (X)HTML, SQL, JavaScript, C++ (nach Erfahrung von links nach rechts)

BeitragVerfasst am: 15.08.2007, 13:28    Titel: Antworten mit Zitat

Hm, naja Vor- Nachteile in Bezug auf was? =)


Allgemein:

- Dateien müssen eingelesen werden, jedes mal von neuem
- Variablen oder Blöcke müssen mit Hilfe regulärer Ausdrücke ersetzt werden
=> Performance-lastig

+ Templates kann man initiieren, wieder löschen während dem ganzen Code bis hin zum parsen
+ Variablen kann man den ganzen Code über hinzufügen / löschen / ändern
+ Man kann Blöcke festlegen, die auch ineinander schachtelbar sind
+ Man kann Templates alleine parsen
+ Dateien werden erst eingelesen und fertig gemacht, wenn die Methode parse() aufgerufen wird. Vorher kann man jederzeit Headers senden ohne Performance-Verluste zu haben

Der Vorteil gegenüber der ersten Version ist eben vor allem, dass man eine Instanz erstellt und während dem Code eben festlegt, was man wo wie will und erst wenn man das Ende seines Codes erreicht, kann man sagen, ob man alles parsen will (dann erst werden die Dateien eingelesen), ob man nur einzelne Templates parsen will oder ob man lieber einen Header-Redirect machen will, ohne Performancelust durch Einlesen der Dateien am Anfang zu haben.
Des Weiteren ist die neue Innovation in dieser Version, dass Blöcke ineinander schachtelbar sind, d.h. man kann einen äußeren Block haben, der folgendermaßen aussieht:
Code:
{% table %}<table>
</table>{% table %}

Dieser Block beinhaltet nur die primären Tags einer Tabelle. Nun folgt ein innerer Block, weil wir mehrere Reihen haben wollen mit Hilfe von <tr></tr>:
Code:
{% table %}<table>
{% tr %}<tr>
</tr>{% tr %}
</table>{% table %}

Schließlich folgt der dritte Block, der die <td>-Tags beinhaltet:
Code:
{% table %}<table>
{% tr %}<tr>
{% td %}<td>{%td.content%}</td>{% td %}
</tr>{% tr %}
</table>{% table %}

Ein Block ist also immer {% block %} ... {% block %}. Innerhalb eines Blocks sind die Variablen so gekennzeichnet: {%block.var%}. Außerhalb eines Blockes so: {%var%}
Ein Block muss in einem Aufruf erfolgen, weil alle inneren Blöcke mit einem Mal mitgeparsed werden müssen. Den Block kann man auch nicht mehr entfernen danach:
Code:
assign_block('table', array('info' => 'style="border: 1px solid black;"',
'tr' => array());

'tr' wird ein Array zugeordnet, das nun ein numerisches (!) Array ist. Daran erkennt der Parser, dass ein innerer Block vorhanden ist. In diesem numerischen Array befinden sich numerische Werte, die wiederum Arrays zugeordnet bekommen. Jeder dieser Werte stellt einen neuen Block mit dem Namen 'tr' dar:
Code:
array(
 [0] => array(
  'info' => '',
  'td' => array()
 )
 [1] => array(
  'info' => '',
  'td' => array()
 )
)

Damit haben wir zwei neue tr-Blöcke innerhalb von table festgelegt. Man findet unter 'td' wiederum jeweils ein Array. Beide sind wieder numerisch und enthalten als Werte wieder Arrays, die die td-Blöcke festlegen. Nacher kann die Tabelle beliebig groß werden, das Template bleibt weiterhin klein.

Hoffe es war verständlich, beim Download gibt es auch eine knappe Beschreibung von all dem.


lG

_________________
http://www.Julian-Stier.de | T-REx 2.2

Fertiges ( 16.7.08 ):
* Julian-Stier.de, Blog - Juli/August 2008

Aktuelles ( 16.7.08 ):
* T-REx 2.3.0 - release 2008/2009
* GlobalIndustry - release 2008/2009
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
synapsis
Administrator


Anmeldedatum: 15.10.2006
Beiträge: 391
Wohnort: Nahe München
Programmiersprachen: C/C++, VB, (Java), PHP, JS, AJAX, Python
Compiler: gcc, MS VS2005 SE

BeitragVerfasst am: 16.08.2007, 10:18    Titel: Antworten mit Zitat

So, hatte erst jetzt Zeit mir das mal anzuschauen. Im Prinzip hast du die Template-Engine von phpbb verbessert. Zum einen sind Blocks innerhalb von Blocks natürlich eine feine Sache und zum anderen ist der Code einfacher zu schreiben. (keine BEGIN .... , usw) Natürlich entsteht dadurch auch ein Nachteil, weil die Lesbarkeit der Templatedateien abnimmt. (nicht mehr so übersichtlich)

Das Einsetzen von Variablen in Blöcke scheint intuitiver als bei phpbb.

So gesehen, versuch mal den Entwicklern von phpbb für die version 3 deine neue Engine anzudrehen! Mr. Green (wobeis schon recht spät ist, die sind ja schon bei RC4)

(zu den Tools verschoben)

_________________
Pssst... Syncom.org Relaunch im Herbst 2008... bitte weitersagen Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
PhP0Kid
Profi-Benutzer


Anmeldedatum: 05.01.2007
Beiträge: 415
Wohnort: Ellwangen (nahe Aalen)
Programmiersprachen: PHP, CSS, (X)HTML, SQL, JavaScript, C++ (nach Erfahrung von links nach rechts)

BeitragVerfasst am: 16.08.2007, 11:52    Titel: Antworten mit Zitat

Das Prinzip ist von phpBB -zum Teil- abgeschaut, wie bei meiner ersten Version mal erwähnt, ja.
Aber
1. kenne ich ne Menge Leute, die mit str_replace und derlei ihre Templateengines in einfacher Weise selber schreiben, also kommt die Idee selber nicht von phpBB
2. ist meine TemplateEngine nicht nur umfangreicher, sondern auch vom Prinzip nochmal etwas komplexer:

- Template-Dateien werden als Namen in einer Variable gespeichert
- Variablen werden als Array var => value gespeichert
- Blöcke werden als mehrdimensionale Arrays gespeichert
- bis auf Blöcke kann man jederzeit Variablen oder Templates entfernen (ändern)
- erst am Ende der Datei, wenn kein Redirect gekommen ist oder sonst etwas, werden die Dateien eingelesen und verarbeitet

phpBB macht das nochmal anders.. und ich glaube die haben da irgwelche Variablen, die "compiled_code" und "uncompiled_code" heißen. Hab mich da nie eingearbeitet, aber ich glaube die machen da auch irgwas, das die Effizienz etwas steigert.. ma sehn, ob man noch was abschauen kann^^

Also abgeguckt ist nur die Idee der Blocks eben.. die hab ich dann erweitert Razz Razz

Ansonsten danke für das Lob.. wenn jmd Bugs findet, bitte melden! Wäre sehr angetan.


lG

_________________
http://www.Julian-Stier.de | T-REx 2.2

Fertiges ( 16.7.08 ):
* Julian-Stier.de, Blog - Juli/August 2008

Aktuelles ( 16.7.08 ):
* T-REx 2.3.0 - release 2008/2009
* GlobalIndustry - release 2008/2009
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
PhP0Kid
Profi-Benutzer


Anmeldedatum: 05.01.2007
Beiträge: 415
Wohnort: Ellwangen (nahe Aalen)
Programmiersprachen: PHP, CSS, (X)HTML, SQL, JavaScript, C++ (nach Erfahrung von links nach rechts)

BeitragVerfasst am: 20.01.2008, 12:20    Titel: T-REx 2.2.0beta Antworten mit Zitat

Damit auch alle über meinen Stand der Dinge Bescheid wissen.. Mr. Green

T-REx 2.2.0 ist in der Beta-Phase
Durch langes Programmieren gestern habe ich es endlich geschafft ein neues Block-System zu entwickeln. Blöcke sind jetzt nicht mehr nur Arrays, sondern eigene Klasseninstanzen. Das ermöglicht einen übersichtlicheren Zugriff und zugleich kann man Einstellungen jederzeit editieren.

Was sich in der Version 2.2.0 geändert hat / ändern wird
Übersicht
  • eigene Blockklasse
  • sog. virtuelle Templates
  • Konfigurationen von Ordner, eigene Compilerfunktion, eigenen Errorhandler
  • Anordnung von Templates in Gruppen (sog. "Keys")
  • DebugMode

Was noch nicht dabei ist, mir aber fehlt, ist die Möglichkeit einer Variable ein neues Template zuzuweisen, das auch geparsed wird. Bisher muss man dafür eine neue T-REx-Klasse instanzieren, diese dann kompilieren lassen und der ersten T-REx-Klasse übergeben. Das soll sich ändern, indem die obere Templateklasse auch auf innere Templates eingeht

Der Stil von 2.2.0 ist immer noch der 2er-Reihe sehr ähnlich: Erst Konfiguration, dann Kompilierung. Das war der Grund, wodurch es sich von der 1er-Version (sofortige Kompilierung) unterschieden hat. Da sich dieses Prinzip nicht geändert hat, bleibt die neue Version als solche erhalten und nicht als neue Reihe, auch wenn es extrem viele Neuheiten gegenüber den alten Updates gibt. Das wird auch der Grund sein, warum es vor allem in der Beta-Phase noch viele Bugs geben wird (bisher habe ich bis auf fehlenden Features keinen gefunden), aber ich hoffe auf Stabilität.

Eine richtige Dokumentation wird folgen, sobald die Betatests zu Ende sind und das System stabil läuft. Die Debugger-Funktion gibt übrigens auch Informationen zur Kompilierungszeit aus, was sehr interessant sein könnte.

Man findet T-REx im Repository: https://www.syncom.org/svn/trex/


Viel Spaß beim Testen Smile



Gruß



EDIT: knappe 1000 Zeilen Code Cool Mr. Green





PS: Vernichtet smarty! *wuahaha*

_________________
http://www.Julian-Stier.de | T-REx 2.2

Fertiges ( 16.7.08 ):
* Julian-Stier.de, Blog - Juli/August 2008

Aktuelles ( 16.7.08 ):
* T-REx 2.3.0 - release 2008/2009
* GlobalIndustry - release 2008/2009
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
thewuz
Erfahrener Benutzer


Anmeldedatum: 21.01.2007
Beiträge: 228
Wohnort: Nähe Wien
Programmiersprachen: PHP, HTML, JAVA, JavaScript
Compiler: Eclipse für JAVA

BeitragVerfasst am: 20.01.2008, 20:50    Titel: Antworten mit Zitat

also so wie sich das anhört, dann kann sich deine Engine auf jeden Fall mit bekannten Template Engines wie eben genannter "Smarty" messen.
Mach weiter so, und vor Allem: Mach Publik daraus!
lg
thewuz
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
synapsis
Administrator


Anmeldedatum: 15.10.2006
Beiträge: 391
Wohnort: Nahe München
Programmiersprachen: C/C++, VB, (Java), PHP, JS, AJAX, Python
Compiler: gcc, MS VS2005 SE

BeitragVerfasst am: 20.01.2008, 21:13    Titel: Antworten mit Zitat

hört sich kompliziert an Smile
gute Arbeit Wink

_________________
Pssst... Syncom.org Relaunch im Herbst 2008... bitte weitersagen Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
PhP0Kid
Profi-Benutzer


Anmeldedatum: 05.01.2007
Beiträge: 415
Wohnort: Ellwangen (nahe Aalen)
Programmiersprachen: PHP, CSS, (X)HTML, SQL, JavaScript, C++ (nach Erfahrung von links nach rechts)

BeitragVerfasst am: 21.01.2008, 21:22    Titel: Antworten mit Zitat

Kompliziert? Ich dachte es wäre einfacher geworden Mr. Green


Nene, ist halt wirklich im Moment in der Beta. Nächste Woche fang ich mit Probeläufen an vorhandenen Websites auf meinem localhost an - es hat sich herausgestellt, dass ich da meistens 90% aller Fehler entdecke, so wirklich welche existieren sollten. Habe aber schon einige Dinge entdeckt, die noch nicht so schön laufen. Außerdem fehlen noch einige Rückgabefunktionen, die zackig geschrieben sind..

Aaaaaber dann^^ Dann wirdsn neuen Post hier geben.. und in einigen anderen Foren.. und meine Website wird erscheinen *freu*

Wartet nur, wird alles gaaaanz klasse Very Happy


lG

_________________
http://www.Julian-Stier.de | T-REx 2.2

Fertiges ( 16.7.08 ):
* Julian-Stier.de, Blog - Juli/August 2008

Aktuelles ( 16.7.08 ):
* T-REx 2.3.0 - release 2008/2009
* GlobalIndustry - release 2008/2009
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
synapsis
Administrator


Anmeldedatum: 15.10.2006
Beiträge: 391
Wohnort: Nahe München
Programmiersprachen: C/C++, VB, (Java), PHP, JS, AJAX, Python
Compiler: gcc, MS VS2005 SE

BeitragVerfasst am: 21.01.2008, 22:16    Titel: Antworten mit Zitat

Es wär sehr interessant zu wissen, wie denn die Performance von deiner Engine aussieht. Kannst du da mal eine Testreihe machen? Mit microtime() solltest du da eigentlich zurechtkommen...

Ideal wär's natürlich dann, wenn du die Performance auch bei anderen Engines (z.b. der phpbb engine oder smarty) misst und die dann vergleichst. Smile

_________________
Pssst... Syncom.org Relaunch im Herbst 2008... bitte weitersagen Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
PhP0Kid
Profi-Benutzer


Anmeldedatum: 05.01.2007
Beiträge: 415
Wohnort: Ellwangen (nahe Aalen)
Programmiersprachen: PHP, CSS, (X)HTML, SQL, JavaScript, C++ (nach Erfahrung von links nach rechts)

BeitragVerfasst am: 21.01.2008, 22:25    Titel: Antworten mit Zitat

synapsis hat Folgendes geschrieben:
Ideal wär's natürlich dann, wenn du die Performance auch bei anderen Engines (z.b. der phpbb engine oder smarty) misst und die dann vergleichst. Smile


Das hatte ich natürlich vor Smile Kommt noch vor dem Release!
Der oben genannte "DebugMode", gibt die bereits die Zeit aus, die er von Start der Templateklasse bis zum Ende des Parsen braucht Wink
Was nun noch fehlt sind natürlich vergleiche. Diese werde ich dann auch auf der Website vorführen, um ein Grund für meine TE anzubringen

Bisher liegt sie bei einigen wenigen Ausgaben (kurze texte, zwei tabellen) bei unter 0.001 Sekunden, wobei sie beim ersten Aufruf knapp drüber liegt und danach natürlich (php eigener auto cache womöglich) drunter. Wie das mit längeren Texten und v.a. Websites aussieht, weiß ich noch nicht. Bisher war T-REx 2.1 aber stets bei rund 0.05-0.4sek samt MySQL-Abfragen und allem halt Smile


lG

_________________
http://www.Julian-Stier.de | T-REx 2.2

Fertiges ( 16.7.08 ):
* Julian-Stier.de, Blog - Juli/August 2008

Aktuelles ( 16.7.08 ):
* T-REx 2.3.0 - release 2008/2009
* GlobalIndustry - release 2008/2009
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
thorn
Fortgeschrittener Benutzer


Anmeldedatum: 23.09.2007
Beiträge: 53
Wohnort: Niederried b.K. (CH)
Programmiersprachen: PHP, MySQL, (X)HTML, CSS, JS, C, VB

BeitragVerfasst am: 22.01.2008, 00:33    Titel: Antworten mit Zitat

Hört sich interessant an - vielleicht könnte ich das sogar gebrauchen bei meiner Seite

Ich habe den Inhalt nur so kurz überflogen - werde ihn später nochmals lesen und vielleicht auch eine Testreihe durchführen, benutze derzeit Smarty

Meine Frage vorweg:
Ist es möglich, einzelne Templateblöcke zu erzeugen - sprich, ein Templateblock Header, einen Block Menü, einen Block Inhalt, einen Block zuatzmenü, einen Block Footer...
Also alles unabhängige Blöcke zusammenstellen, innerhalb eines Durchlaufs ohne Komplikationen?

Ob das bei Smarty geht, weiss ich nicht, da wird ja alles in einer Klasse behandelt und wenn eine Ausgabe erzeugt wird, werden weiss ich was für Codeschnipsel erstellt, die dann irgendwo liegen und ob dann nachträglich eine weitere Ausgabe erzeugt werden kann, ist fraglich.

Würde mich nur mal so interessieren, wie das hier so ist.

(Kann sein, dass ich in deisem Bereich ein Vollnoob bin *g* - aber ich hoffe,du hast mein Anliegen verstanden *fg*)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
PhP0Kid
Profi-Benutzer


Anmeldedatum: 05.01.2007
Beiträge: 415
Wohnort: Ellwangen (nahe Aalen)
Programmiersprachen: PHP, CSS, (X)HTML, SQL, JavaScript, C++ (nach Erfahrung von links nach rechts)

BeitragVerfasst am: 22.01.2008, 19:05    Titel: Antworten mit Zitat

Hi,

okay, nochmals zur Info: Das ist momentan Beta. Ich habe bereits die ersten Bugs in den Blöcken gefunden Smile

Zu deiner Frage:
Uff, ganz verstehe ich nicht, was du meinst.
Normalerweise (ich als Ersteller des Scripts), würde es folgendermaßen verwenden: Eine header.tpl, content.tpl (wahlweise je nach Datei) und eine footer.tpl. Diese werden dann per assign_tpl(); jeweils eingefügt (in der richtigen Reihenfolge versteht sich. Eine Verschiebungsfunktion wird evtl noch kommen..).
Blöcke sehen folgendermaßen aus:
{% block %}<div>{%block.content%}</div>
{% block%}
Diesen Abschnitt kann man jetzt beliebig oft mit beliebigem Inhalt generieren lassen Smile Das Ganze ist auch verschachtelbar, aber da tritt in der neuen Version im Moment ein winziges Buglein auf.. mhm^^

Ich weiß nicht, ob man diese Klasse bereits mit Smarty vergleichen kann - immerhin unterscheiden sich die Prinzipien sehr stark von einander. Klar ist, dass Smarty zu Beginn weit aus langsamer sein wird, aber sobald der Smarty-Code in php verwandelt wurde, ist dies natürlich schneller als T-REx. T-REx hat dagegen hohe Flexibilität innerhalb von php. Auf was ich Augenmerk lege: Design wird vom Code getrennt. Das ist in meinen Augen bei Smarty nicht geschehen, da der Smarty-Code völliger Stuss ist. Beispiel:

Es gibt eine Variable innerhalb eines Templates. Die Variable hat den Namen "myVar". Nun möchte ich, wenn der Parameter $_GET['site'] gleich 'index' ist einen bestimmten Content ausgeben; im Falle 'news' einen anderen und bei nicht vorhandenem Parameter eine Fehlermeldung. In Smarty ist es meines Wissens möglich dies mit einer if-Bedingung im Template zu machen. Alá "{smarty: if..}" (Achtung: dieser Code stimmt nicht mit der Smarty-Syntax überein, sondern gibt nur ein Beispiel!). Damit gibt es für mich persönlich aber schon ein Problem: Wieso darf das Template entscheiden, welcher -Inhalt- wann und wo stehen darf? Das heißt, man muss drei Dinge unterscheiden: Design (Templates = Vorlagen), Code und Inhalt. Inhalt steht erwiesenermaßen am besten in der Datenbank oder in ausgelagerten Dateien (z.B. XML ist sehr gut besonders für eine Sprachweiche geeignet). Der Code dient dazu all dies zusammenzuführen, egal welches Design, egal welchen Inhalt. Also sollte im php-Code stehen:
switch($_GET['site']){
case "": [..]
default: [..]
}
Smarty nutzt diese Syntax, um einen php-Code zu generieren. Für viele sicher eine Erleichterung, für mich aber nicht mit dem Sinn er TemplateEngine konform. Eine ausreichende Dokumentation erscheint am Wochenende Smile


lG

_________________
http://www.Julian-Stier.de | T-REx 2.2

Fertiges ( 16.7.08 ):
* Julian-Stier.de, Blog - Juli/August 2008

Aktuelles ( 16.7.08 ):
* T-REx 2.3.0 - release 2008/2009
* GlobalIndustry - release 2008/2009
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
thorn
Fortgeschrittener Benutzer


Anmeldedatum: 23.09.2007
Beiträge: 53
Wohnort: Niederried b.K. (CH)
Programmiersprachen: PHP, MySQL, (X)HTML, CSS, JS, C, VB

BeitragVerfasst am: 24.01.2008, 20:15    Titel: Antworten mit Zitat

In Smarty wird ein Template aufgerufen - entsprechend den übergebenen Variablen, kann ermittelt werden, welcher Teil angezeigt wird:
Code:
{if isset($username)}Willkommen {$username}{else}Willkommen Gast{/if}

Code-Beispiel für Anzeige einer Willkommensmeldung...

Ebenfalls ist es möglich weitere Templates im Template zu includen:
Code:
{include file=./header.tpl}


Weiter ist es möglich, eine Schleife einzubauen, um eine Liste entsprechend auszugeben:
Code:
{foreach key=id item=inhalt from=$array}
Nummer: {$id} - Inhalt: {$inhalt}<br>
{/foreach}


Von dem her gesehen find ich Smarty praktisch - nur passiert alles über eine Templateinitialisierung... also alles muss über ein Template aufgerufen werden.

Wäre natürlich praktisch, wenn man ein Conteiner-Template machen könnte, wo mann dann die einzelnen Bereiche (Menu, Banner, Content, etc.) getrennt laden kann - wiederum Templates innerhalb eines Templates generieren, je nach Aufruf.

Ich hätte halt gerne aus PHP gesteuert, wann ein Template an welcher stelle ausgegeben werden soll - bei Smarty muss ich das alles im voraus Planen, da wie gesagt, alles über die Templates aufgerufen wird.

Meine Idee:
Die Templates für den Content durchgehen und dann anschliessen noch ein weiteres Template für den Content durchgehen, getrennt vom ersten, sollen aber beide im Content angezeigt werden...
(Klingt wohl jetzt kompliziert, ich hab selber noch nicht den richtigen Lösungsweg, aber ansatzweise die Idee, wie ich es machen könnte, das aber wohl nicht mit Smarty)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
thorn
Fortgeschrittener Benutzer


Anmeldedatum: 23.09.2007
Beiträge: 53
Wohnort: Niederried b.K. (CH)
Programmiersprachen: PHP, MySQL, (X)HTML, CSS, JS, C, VB

BeitragVerfasst am: 24.01.2008, 20:22    Titel: Antworten mit Zitat

Kleiner Nachtrag... vielleicht aber schon bekannt?

synapsis hat Folgendes geschrieben:
Es wär sehr interessant zu wissen, wie denn die Performance von deiner Engine aussieht. Kannst du da mal eine Testreihe machen? Mit microtime() solltest du da eigentlich zurechtkommen...


PhP0Kid hat Folgendes geschrieben:
Bisher liegt sie bei einigen wenigen Ausgaben (kurze texte, zwei tabellen) bei unter 0.001 Sekunden, wobei sie beim ersten Aufruf knapp drüber liegt und danach natürlich (php eigener auto cache womöglich) drunter.


Bitte beachtet, dass der erste Aufruf von microtime() in PHP nicht immer gleich korrekte Werte liefert.
Ich habe selber einige Testreihen durchgeführt und bemerkt, dass die Werte um ein Echo auszugeben unterschiedlich lange dauern, wenn microtime() nicht zum voraus einmal aufgerufen wurde, danach dauerte eine Echo-Ausgabe gleichmässig lange!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Syncom.org Foren-Übersicht -> Tools Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Anhänge in diesem Forum nicht anhängen.
Du kannst Dateien in diesem Forum herunterladen.



Powered by php B. B. © 2001, 2005 php B. B. Group
Template xabbBlue für php B. B. Foren - created by php b. b. styles
Modified by synapsis
Protected by CTracker