Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > PHP > PHP-Programmierung > Platzhalter parsen

Layoutprobleme? - Styleswitcher!

Antwort
 
Themen-Optionen
Alt 10.04.2008, 15:22 Nach oben    #1
kampfgnom
Gabriel
 
Registriert seit: 27.09.2006
Ort: Radebeul
Beiträge: 378
Standard Platzhalter parsen

Hi,
im Zend Framework werden die Platzhalter (also view-Variablen) wie folgt im Template gesetzt:
PHP-Code:
<? echo $this->bla; ?>
so jetzt meine Frage:
Wird das ganze dann über regex geparsed oder kann man das irgendwie anders über php ausführen lassen.
Is ja eigentlich nichts anderes als PHPcode in shorttags...

danke!
__________________
kampfgnom ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 10.04.2008, 15:26 Nach oben    #2
Flor1an
Der Student
 
Benutzerbild von Flor1an
 
Registriert seit: 03.01.2007
Ort: München
Beiträge: 49
Standard

Ich kenn das Zend Framework nicht. Aber ich geh sehr stark davon aus dass die Templates einfach nur per include() geladen werden. Da wird dann das PHP direkt im Template ausgeführt.

Ich kann mir nicht vorstellen das da extra was geparst wird! Wäre doch total unnötig extra PHP Code ins Template zu schreiben um es dann doch nicht als PHP Code auszuführen!

Zitat:
Now we need the associated view script, "booklist.php". This is a PHP script like any other, with one exception: it executes inside the scope of the Zend_View instance, which means that references to $this point to the Zend_View instance properties and methods. (Variables assigned to the instance by the controller are public properties of the Zend_View instance.) Thus, a very basic view script could look like this:
Das steht in der Doku. Die View PHP Datei wird wohl innerhalb der View Klasse eingebunden, daher kannst du auf die klasseninternen Variablen zugreifen. ($this->)
__________________
Wenn ich du wäre, wäre ich lieber ich.

http://www.clubstars.net
http://www.x-tinct.de

Geändert von Flor1an (10.04.2008 um 15:29 Uhr).
Flor1an ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 10.04.2008, 15:29 Nach oben    #3
Neq'
Patrick Freitag
 
Registriert seit: 17.08.2005
Beiträge: 105
Standard

Zitat:
Zitat von kampfgnom Beitrag anzeigen
Hi,
im Zend Framework werden die Platzhalter (also view-Variablen) wie folgt im Template gesetzt:
PHP-Code:
<? echo $this->bla; ?>
so jetzt meine Frage:
Wird das ganze dann über regex geparsed oder kann man das irgendwie anders über php ausführen lassen.
Is ja eigentlich nichts anderes als PHPcode in shorttags...

danke!
Nein, wird nicht mittels RegEx geparst. Es wird eine Template-Klasse verwendet die mittels Function-Overloading Eigenschaften so definierbar macht. Im Grunde wird dann nur der PHP-Code ausgeführt (z.B mit den ob-Funktionen) und so ausgeführt.

Meine "Template-Engine" geht den selben weg und hat noch ein paar Features mehr (wie z.B effektives Caching usw. usf.).
Neq' ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 10.04.2008, 15:33 Nach oben    #4
kampfgnom
Gabriel
 
Registriert seit: 27.09.2006
Ort: Radebeul
Beiträge: 378
Standard

hab ich mir schon gedacht!

Hat jemand ein link wo beschireben steht ob und wie man funktionen beschränken kann? Ich würde ungern alles in einem Template zulassen...
__________________
kampfgnom ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 10.04.2008, 16:07 Nach oben    #5
Neq'
Patrick Freitag
 
Registriert seit: 17.08.2005
Beiträge: 105
Standard

Zitat:
Zitat von kampfgnom Beitrag anzeigen
hab ich mir schon gedacht!

Hat jemand ein link wo beschireben steht ob und wie man funktionen beschränken kann? Ich würde ungern alles in einem Template zulassen...
Dann ist es womöglich besser für dich wenn du dir eine eigene Syntax für deine Templates anlegst und kein PHP zulegst.

Wieso willst du überhaupt PHP-Funktionen in den Templates einschränken?
Neq' ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.04.2008, 11:54 Nach oben    #6
MrNiceGuy
Lutz
 
Benutzerbild von MrNiceGuy
 
Registriert seit: 14.08.2005
Ort: Nienburg / Weser
Beiträge: 603
Standard

Zitat:
Zitat von Neq' Beitrag anzeigen
Zitat:
Zitat von kampfgnom Beitrag anzeigen
hab ich mir schon gedacht!
Zitat:
Zitat von Neq' Beitrag anzeigen
Zitat:
Zitat von kampfgnom Beitrag anzeigen
Hat jemand ein link wo beschireben steht ob und wie man funktionen beschränken kann? Ich würde ungern alles in einem Template zulassen...

Dann ist es womöglich besser für dich wenn du dir eine eigene Syntax für deine Templates anlegst und kein PHP zulegst.
Wieso willst du überhaupt PHP-Funktionen in den Templates einschränken?

Das macht zum Beispiel dann Sinn, wenn Dritte die Templates anpassen könnten und damit Sicherheitslücken vermieden werden. PHP hat in Templates im Grunde auch nichts verloren, da es der eigentlichen Logik von Templates widerspricht, Code und Layout zu trennen, aber das ist eine Diskussion, die schon häufig ohne einheitliches Ergebnis geführt wurde und hier den Rahmen sprengen würde.
Funktionen in Template-Engines zu beschränken, die lediglich mittels include() oder gar eval() arbeiten ist wenn überhaupt nur bedingt möglich und schätzungsweise aufwendiger, als eine eigene Template-Engine zu schreiben.
__________________
Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll
MrNiceGuy ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.04.2008, 11:59 Nach oben    #7
Flor1an
Der Student
 
Benutzerbild von Flor1an
 
Registriert seit: 03.01.2007
Ort: München
Beiträge: 49
Standard

Wenn du andere Templatesysteme hast nutzt du genauso Code im Layout! Hast halt dann keine PHP Syntax sondern die einer eigenen pseudo Sprache. Irgendwelchen Code MUSS man einfach im Template haben.

Wenn du etwas suchst bei dem du dem Templatedesigner keine Rechte für PHP geben möchtest dann verwende z.B. Smarty. Smarty filtert alle PHP Blöcke heraus, WENN du es möchtest! Kannst du natürlich immer noch verwenden.

Es gibt mittlerweile diverse Tutorials wie du Smarty ins Zend Framework einbauen kannst.
__________________
Wenn ich du wäre, wäre ich lieber ich.

http://www.clubstars.net
http://www.x-tinct.de
Flor1an ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.04.2008, 12:43 Nach oben    #8
Neq'
Patrick Freitag
 
Registriert seit: 17.08.2005
Beiträge: 105
Standard

Bezüglich der Templatediskussion möchte ich natürlich keinen Flamewar starten und fasse nur kurz meinen Standpunkt zusammen: Ich sehe es ähnlich wie Flor1an. PHP wurde als Template-Scriptsprache entworfen, war auch im Namen enthalten. Leider hat sich PHP sehr negativ verändert und das in vielen belangen. Welche Lösung richtig oder falsch ist, muss jeder für sich selbst entscheiden.

Ansonsten würde ich auch zu Smarty o.ä raten, wäre eben interessant zu wissen was du möchtest und wie du es möchtest, dann könnte man dir vll. genauere Ratschläge geben.
Neq' ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.04.2008, 13:03 Nach oben    #9
kampfgnom
Gabriel
 
Registriert seit: 27.09.2006
Ort: Radebeul
Beiträge: 378
Standard

Ok danke euch!
Naja dann entscheide ich mich doch für eine eigene Engine!

Mir hat sich nur die Frage nach der Performance gestellt.
Doch, den aufwand ist es dann wahrscheinlich nicht wirklich wert...

Warum überhaupt diese Beschränkung. Nun zum einen hat es kein sinn, warum das erlaubt sein soll, zum anderen bin ich mistrauisch den Template Designern gegenüber!

Achso von wegen Code im Template!
Natürlich muss da welche rein! Nämlich Darstellungslogik. Aber keine Buissnes-logik! Daher auch mein wunsch einzuschränken!

Aber ok, ich hab mich für was eigenes Entschieden...wird auch denk ich nich ganz schlecht für mich sein^^

Danke euch!!
__________________
kampfgnom ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.04.2008, 13:41 Nach oben    #10
Neq'
Patrick Freitag
 
Registriert seit: 17.08.2005
Beiträge: 105
Standard

Zitat:
Zitat von kampfgnom Beitrag anzeigen
Ok danke euch!
Naja dann entscheide ich mich doch für eine eigene Engine!
D.h du verwendest jetzt eine eigene Syntax?

Zitat:
Zitat von kampfgnom Beitrag anzeigen
Mir hat sich nur die Frage nach der Performance gestellt.
Doch, den aufwand ist es dann wahrscheinlich nicht wirklich wert...
Die Performanceeinbußen sind bei kleinen bis mittleren Seiten kaum zu spüren, außerdem wenn intelligent gecached wird (Object-Cache usw. usf.) spielen die paar ms keine Rolle mehr.

Zitat:
Zitat von kampfgnom Beitrag anzeigen
Warum überhaupt diese Beschränkung. Nun zum einen hat es kein sinn, warum das erlaubt sein soll, zum anderen bin ich mistrauisch den Template Designern gegenüber!
Nun, kann ich natürlich verstehen. Es wäre mit "meiner" Methode ganz einfach nur die zugewiesenen Variablen verfügbar zu machen, der Rest bleibt ausgeschaltet.

Zitat:
Zitat von kampfgnom Beitrag anzeigen
Achso von wegen Code im Template!
Natürlich muss da welche rein! Nämlich Darstellungslogik. Aber keine Buissnes-logik! Daher auch mein wunsch einzuschränken!
Natürlich nur Darstellungslogik, nur PHP im Code bedeutet nicht gleich Business-Logik.

Zitat:
Zitat von kampfgnom Beitrag anzeigen
Aber ok, ich hab mich für was eigenes Entschieden...wird auch denk ich nich ganz schlecht für mich sein^^
Klar, wieso auch nicht. Nur sollte man sich vll. gewisse Dinge von anderen Rädern abgucken.

Patrick
Neq' ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.04.2008, 12:58 Nach oben    #11
kampfgnom
Gabriel
 
Registriert seit: 27.09.2006
Ort: Radebeul
Beiträge: 378
Standard

Zitat:
Zitat von Neq' Beitrag anzeigen
Zitat:
Zitat von kampfgnom Beitrag anzeigen
Achso von wegen Code im Template!
Natürlich muss da welche rein! Nämlich Darstellungslogik. Aber keine Buissnes-logik! Daher auch mein wunsch einzuschränken!
Natürlich nur Darstellungslogik, nur PHP im Code bedeutet nicht gleich Business-Logik.
Naja mit PHP kann man halt beides erreichen.
Wenn man nun alles zulässt, wäre die Trennung von Code und Design für'n Ar***

naja, jetzt erstmal die Verteidigung für die Facharbeit fertig machen und dann kann ich mich ans Programmieren setzen....
__________________
kampfgnom ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.04.2008, 13:14 Nach oben    #12
Flor1an
Der Student
 
Benutzerbild von Flor1an
 
Registriert seit: 03.01.2007
Ort: München
Beiträge: 49
Standard

Ist die Facharbeit so schlecht dass du sie Verteidigen musst?

Aber wie willst du PHP Code in Templates "einschränken" ? Entweder musst du ein Template parsen und dabei schädlichen Code rausfiltern oder eben darauf verzichten und das Template direkt ausführen aber dann halt "alles" erlauben.
__________________
Wenn ich du wäre, wäre ich lieber ich.

http://www.clubstars.net
http://www.x-tinct.de
Flor1an ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.04.2008, 17:10 Nach oben    #13
kampfgnom
Gabriel
 
Registriert seit: 27.09.2006
Ort: Radebeul
Beiträge: 378
Standard

Zitat:
Zitat von Flor1an Beitrag anzeigen
Ist die Facharbeit so schlecht dass du sie Verteidigen musst?

Aber wie willst du PHP Code in Templates "einschränken" ? Entweder musst du ein Template parsen und dabei schädlichen Code rausfiltern oder eben darauf verzichten und das Template direkt ausführen aber dann halt "alles" erlauben.
Naja das wusst ich eben auch nicht so richtig...aber fragen kostet ja nichts.

DAs mit der Verteidigung: Nee, an unserer Schule ist prinzipiell jeder drann...
__________________
kampfgnom ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.04.2008, 20:00 Nach oben    #14
Flor1an
Der Student
 
Benutzerbild von Flor1an
 
Registriert seit: 03.01.2007
Ort: München
Beiträge: 49
Standard

Sollte das nicht Vereidigung heißen? Oder hast du wirklich Verteidigung gemeint? Bei mir musste auch jeder eine Facharbeit anfertigen, inklusive mir xD
__________________
Wenn ich du wäre, wäre ich lieber ich.

http://www.clubstars.net
http://www.x-tinct.de
Flor1an ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.04.2008, 21:43 Nach oben    #15
kampfgnom
Gabriel
 
Registriert seit: 27.09.2006
Ort: Radebeul
Beiträge: 378
Standard

Zitat:
Zitat von Flor1an Beitrag anzeigen
Sollte das nicht Vereidigung heißen? Oder hast du wirklich Verteidigung gemeint? Bei mir musste auch jeder eine Facharbeit anfertigen, inklusive mir xD
Vereidigen musst ich sie mehr oder weniger auch! (Selbstständigkeitserklärung...aber Veriedigen is es ja nicht... )

Bei der Verteidigung geht es um die Präsentation des Konsens der Arbeit.
Eigentlich ist es dafür, das man z.b. schaut ob derjenige sich wirklich mit dem Thema auskennt.
Bei uns geht es mehr um das trainieren einer Präsentation...

Aber das gehört nicht mehr zum Thema!!!

Ich bedanke mich für eure Auskünfte!!
__________________
kampfgnom ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 13.04.2008, 11:25 Nach oben    #16
MrNiceGuy
Lutz
 
Benutzerbild von MrNiceGuy
 
Registriert seit: 14.08.2005
Ort: Nienburg / Weser
Beiträge: 603
Standard

Zitat:
Zitat von Flor1an Beitrag anzeigen
Wenn du andere Templatesysteme hast nutzt du genauso Code im Layout! Hast halt dann keine PHP Syntax sondern die einer eigenen pseudo Sprache. Irgendwelchen Code MUSS man einfach im Template haben.
Zitat:
Zitat von Flor1an Beitrag anzeigen
[...]

Was die von mir angesprochene Diskussion lostreten würde (und somit das Thema verfehlt). Man sollte dabei halt nur bedenken, ob es ratsam ist direkt PHP zu verwenden, denn Designer / Grafiker sind in der Regel keine Programmierer, eine Pseudo-Sprache wäre von daher in einigen Fällen eher angebracht. Aber um deinen Standpunkt zu untermauern: Natürlich braucht man IMMER eine Art von Code. Das wäre aber auch nicht Gegenstand einer derartigen Konversation. Bei Bedarf können wir aber gerne einen neuen Thread zu diesen Thema aufmachen oder den alten wieder rauspulen...
__________________
Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll
MrNiceGuy ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

« Anwendungsgebiet für innere Klassen | Dokument als druckbare (300dpi) pdf ausgeben... »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge anzufügen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are Aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[regex] mehrere Parameter parsen $traight-$hoota PHP-Programmierung 5 25.02.2008 23:58
Svg parsen in java??? Aristotelis Enterprise Java 3 25.05.2007 14:44
Problem bei Verarbeitung von Templates (Eigene Klassen) dago PHP-Programmierung 21 31.08.2006 16:02


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:22 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.6.7, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.0.0) und vBSEO.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44