php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 15.05.2008, 12:46  
Neuer Benutzer
 
Registriert seit: 18.02.2008
Beiträge: 17
crunk
Standard Sammeln und Ausgeben von Daten

Hallo,

Ich plane zur Zeit ein CMS für einen Clan. (Nein, kein OpenSourceCMS)
Dafür stehe ich vor folgendem Schwerpunkt:

Ich habe ein Templatesystem.
$tpl->replace("content", $content);

Die Variable $content soll nun das sein, was in der Location aufgerufen wird. Nämlich das jeweilige Modul. (?mod=news)

Jetzt stehen mir folgende Möglichkeiten zur Verfügung:

a) Ich benutze einen Buffer und gebe alles, was in der "news.php" steht mit "echo $title etc." aus. Anschliessend speicher ich das Produkt des Buffers in die Variable $content.
b) Ich speichere alle Strings und Ausgabewerte in der "news.php" in der Variable $content ab.

Gibt es noch andere Möglichkeiten um diesem Problem entgegenzutreten? Wenn nicht, welche der beiden Lösungen ist professioneller und schneller?
crunk ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 15.05.2008, 14:53  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hallo crunk,

die beiden von dir beschrieben Möglichkeiten halte ich persönlich für nicht gangbar. Das funktioniert vielleicht noch für die Komplexität 1, für höhere jedoch nicht mehr. Letzteres kann nur mit einem hirarchischem Modell erledigt werden. Dein Template bildet das - so vermute ich - nicht ab.

Als Lösung schlage ich dir das APF vor, dieses kann mit hirarchischen und mehrfach verschachtelten Templates und Seiten-Modulen sehr einfach umgehen kann. Module können dabei einfach per XML-Tag oder in einem DocumentController eingebunden werden. So kannst du auch bereits bestehende Module weiterverwenden. Ein Einstiegstutorial ist unter http://adventure-php-framework.org/S...eite-erstellen verfügbar, das Thema Templates und Hirarchien ist unter http://adventure-php-framework.org/Seite/016-Klassen aufbereitet. Solltest du Fragen zur Umsetzung oder zum Konzept haben, kannst du dich gerne an mich wenden.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten
Alt 15.05.2008, 15:13  
Erfahrener Benutzer
 
Registriert seit: 27.08.2003
Beiträge: 449
PHP-Kenntnisse:
Fortgeschritten
GSJLink
Standard

Wir dr.e bereits gesagt hat, sind beide Lösungsvorschläge nicht wirklich gut.

Das ganze funktioniert bei z.B. Smarty auch etwas anders. Du hast praktisch zwei Template Dateien (index.tpl und news.tpl) und zwei PHP Dateien (index.php und news.php).

Die news.php wird in der index.php je nach Modul includiert und liefert dir die benötigten Variablen für das Newstemplate. Das Newstemplate wiederrum kannst du via Smarty Include einfügen. Siehe: http://www.smarty.net/manual/de/lang...on.include.php . Damit du bestimmen kannst, welche Datei includet wird, kannst du übrigends auch den Dateinamen in eine Variable setzen und dieser normal einen Wert zuweisen. (Siehe Beispiel im Smarty Handbuch).

Ich hoffe du verstehst was ich meine


mfg
Link
__________________
"Ein Script ist nur dann gut, wenn es unabhängig von der verwendeten Plattform funktioniert"
GSJLink ist offline   Mit Zitat antworten
Alt 15.05.2008, 15:17  
Neuer Benutzer
 
Registriert seit: 18.02.2008
Beiträge: 17
crunk
Standard

Erstmal danke für die ausführliche Antwort.
Ich weiss nicht ob ich es richtig verstanden habe, aber ich stelle es mir jetzt so vor:

1. index.tpl wird aufgerufen
-> {content} wird ersetzt durch news.tpl usw. (hierarchisches Modell)
Jetzt habe ich ein einziges großes Template.
2. Nun kommt die News.php zum Einsatz und ersetzt alle Platzhalter. ({news:title} etc.)

Habe ich es richtig verstanden?
crunk ist offline   Mit Zitat antworten
Alt 15.05.2008, 15:18  
Erfahrener Benutzer
 
Registriert seit: 27.08.2003
Beiträge: 449
PHP-Kenntnisse:
Fortgeschritten
GSJLink
Standard

Korrekt, genau so habe ich das gemeint. Entscheidender Vorteil ist hierbei, dass du nur einmal das Template durchläufst und nicht mehrfach.

mfg
Link
__________________
"Ein Script ist nur dann gut, wenn es unabhängig von der verwendeten Plattform funktioniert"
GSJLink ist offline   Mit Zitat antworten
Alt 15.05.2008, 15:33  
Neuer Benutzer
 
Registriert seit: 18.02.2008
Beiträge: 17
crunk
Standard

Mir dampft der Kopf. Wie muss ich da herangehen? Auf ein bestehendes Framework oder desgleichen möchte ich nicht zurückgreifen.

PHP-Code:
    $tpl1 = new template("index.tpl");
    
    
$tpl2 = new template("news.tpl");
    
$tpl2->replace("title""Hallo Welt");
    
    
$tpl1->replace("{content}"$tpl2->out());
    echo 
$tpl1->out(); 
Ich kann mir nur schwer vorstellen, daraus etwas dynamisches zu machen.
crunk ist offline   Mit Zitat antworten
Alt 15.05.2008, 15:55  
Erfahrener Benutzer
 
Registriert seit: 27.08.2003
Beiträge: 449
PHP-Kenntnisse:
Fortgeschritten
GSJLink
Standard

Also genau das solltest du eigentlich vermeiden...

Ich weiß zwar nicht wie deine Template Klasse aussieht, aber eine solche include Klasse solltest du schon implementieren.

Ich empfehle dir aber von Vorne herein, z.B. auf eine Template Engine wie Smarty zurückzugreifen, da du mit deiner Klasse wahrscheinlich schnell an deren Grenzen stößt. Smarty ist ganz sich ganz einfach, also probiers einfach mal

=> www.smarty.net


mfg
Link
__________________
"Ein Script ist nur dann gut, wenn es unabhängig von der verwendeten Plattform funktioniert"
GSJLink ist offline   Mit Zitat antworten
Alt 15.05.2008, 15:59  
Neuer Benutzer
 
Registriert seit: 18.02.2008
Beiträge: 17
crunk
Standard

Ich muss es verstehen und umsetzen können. Es bringt mir nichts auf andere Systeme zu setzen. Zumal ich selbst mit Smarty nicht wüsste, was genau ich machen soll.
crunk ist offline   Mit Zitat antworten
Alt 15.05.2008, 18:58  
Erfahrener Benutzer
 
Registriert seit: 16.07.2005
Beiträge: 1.007
PHP-Kenntnisse:
Fortgeschritten
brian johnson befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von crunk
Mir dampft der Kopf. Wie muss ich da herangehen? Auf ein bestehendes Framework oder desgleichen möchte ich nicht zurückgreifen.

PHP-Code:
    $tpl1 = new template("index.tpl");
    
    
$tpl2 = new template("news.tpl");
    
$tpl2->replace("title""Hallo Welt");
    
    
$tpl1->replace("{content}"$tpl2->out());
    echo 
$tpl1->out(); 
Ich kann mir nur schwer vorstellen, daraus etwas dynamisches zu machen.
nimm __toString(), nicht nur für die template klasse sondern auch fürs modul (oder eben ein selbstdeklariertes interface).

sieh dir auch mal das Entwurfmuster Strategie sowie das ähnliche Entwurfsmuster des Decorators.

von smarty und dergleichen ist allerdings abzuraten. völlig überblähte wrapper zu PHP.
__________________
PHP4?!?>>>Aktuelle PHP Version: 5.2.11 || 5.3.0
Suse 11.2 *vorfreude*
brian johnson ist offline   Mit Zitat antworten
Alt 15.05.2008, 19:58  
Neuer Benutzer
 
Registriert seit: 18.02.2008
Beiträge: 17
crunk
Standard

Ihr überfordert mich ^^ ich bin praktisch noch Anfänger . Wäre nett, wenn ihr eure Posts immer näher erläutern würdet.
crunk ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

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 hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Daten als Rotation ausgeben superskunk PHP Tipps 2008 16 24.05.2008 21:15
Daten aus Datenbank (richtig) ausgeben. momonov PHP Tipps 2008 19 27.03.2008 16:43
Es werden zuviel Daten ausgeben Kein Genie PHP Tipps 2006 5 12.11.2006 12:37
Daten in Tabelle ausgeben Morientes PHP Tipps 2006 2 03.04.2006 11:53
Daten in neuer Seite ausgeben PHP Tipps 2006 5 20.02.2006 21:47
Mehrere Daten ausgeben Sonja PHP Tipps 2005-2 11 10.08.2005 14:52
Mysql: Daten nach Anfangsbuchstaben Sortiert Ausgeben PHP Tipps 2005-2 5 09.07.2005 15:56
daten ausgeben + ändern möchtegernchegga PHP Tipps 2005-2 10 04.06.2005 14:48
Daten mit Masql ausgeben ohne while PHP Tipps 2005 25 22.05.2005 01:25
mysql daten ohne html formatierung ausgeben wizzardxx PHP Tipps 2005 2 28.03.2005 00:56
Daten aus DB gruppiert ausgeben?! medico PHP Tipps 2005 9 07.01.2005 09:38
[Erledigt] Daten in einem Formular ausgeben und ändern PHP Tipps 2004-2 7 07.12.2004 17:22
Daten ausgeben PHP Tipps 2004 3 25.08.2004 14:14
daten in umgekehrter reihenfolge ausgeben, ohne order by Datenbanken 3 31.07.2004 18:10
SQL Daten ausgeben PHP Tipps 2004 5 19.06.2004 21:18

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php daten sammeln dann ausgeben, index.php $tpl und $tpl2 erstellen, daten für einen tag sammeln php, beim sammeln und ausgeben

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:29 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.