php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 19.10.2008, 15:54  
Benutzer
 
Registriert seit: 19.10.2008
Beiträge: 44
tohms befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] ob_start verwirft gesetzte Variablen?!

Hallo zusammen,

ich bin momentan dabei eine eigene Template Engine zu erstellen, die als Grundfunktion ob_start nutzt. Leider scheinen zuvor gesetzte Variablen, die auch im Template enthalten sind, nicht gelesen zu werden. Hab jetzt schon vieles versucht, aber ich komme auf keinen wünschenswerten Nenner.

Zunächst die relevanten Auszüge der Dateien:

Hier wird der auszugebende Body Teil erzeugt:
PHP-Code:
// index.php
$body = new Template_Body;
$body_tag_elements == "" NULL :   $body->addTag($body_tag_elements);
$requires_navigation == TRUE $body->addNavi(TRUE$module_path) : $body->addNavi(FALSE);
$body->getContent($template_path.$template.DS."body.php",$module_path.DS.$module.DS."pages".DS.$page.".php");
$body->printBody(); 
PHP-Code:
//Body.php (die Klasse)
ob_start();
include_once(
$template_file);
$template ob_get_contents();
ob_end_clean();
      
ob_start();
include_once(
$module_page);
$module ob_get_contents();
ob_end_clean(); 
Die Dateien $template_file und $module_page werden einwandfrei eingelesen und geparsed. Jetzt zum Problem:

Z.B. habe ich das Template body.php und versuche auf eine zuvor gesetzte Variable $template_path zuzugreifen, bleibt diese Variable leer.

Die relevante Methode der Body-Klasse wird aber erst nach setzen der entsprechenden Variable ausgeführt.

Habe ich hier einen Denkfehler??

Danke für Eure Hilfe,
Thomas

PS: Ich weiß, ich könnte das realisieren, in dem ich notwendige Variablen in der Template Datei als global aufrufe, aber genau das möchte ich hier umgehen.

Geändert von tohms (19.10.2008 um 16:14 Uhr).
tohms ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 19.10.2008, 16:19  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.633
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 tohms,

Zitat:
Habe ich hier einen Denkfehler??
Ich fürchte, ja. Da du leider einige Code-Teile verschweigst, rate ich, dass der Gültigkeitsbereich von Variablen nicht beachtet wird.

Zitat:
ich bin momentan dabei eine eigene Template Engine zu erstellen,
OMGNATE!
__________________
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  
Alt 19.10.2008, 16:30  
Benutzer
 
Registriert seit: 19.10.2008
Beiträge: 44
tohms befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von dr.e. Beitrag anzeigen
Hallo tohms,


Ich fürchte, ja. Da du leider einige Code-Teile verschweigst, rate ich, dass der Gültigkeitsbereich von Variablen nicht beachtet wird.


OMGNATE!
Oh man, das passiert, wenn man zu lange keine Pause macht Hast recht, ich gehe während des gesamten Parsens nicht aus der Klasse raus und die Variablen wurden vorher initialisiert und nicht an die Klasse übergeben.

Nebenbei was heißt "OMGNATE" ??
tohms ist offline  
Alt 19.10.2008, 16:50  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.633
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

Zitat:
Nebenbei was heißt "OMGNATE" ??
Das heißt frei übersetzt "Oh my good, not another template engine!" Ich wollte damit ausdrücken, dass es einfach völlig sinnfrei ist noch eine Template-Engines zu den schon vorhandenen 10000 dazuzustecken. Schau doch einfach mal im Netz, da findet sich definitiv eine, die deine Anforderungen abdeckt.
__________________
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  
 


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
[Erledigt] Variablen überprüfen mit isset() Jumper PHP Tipps 2008 8 13.09.2008 13:36
Klasse statt globaler Variablen ecomeback PHP-Fortgeschrittene 6 15.07.2008 16:30
E-Mail Formular: Variablen in $message einfügen? thomas108 PHP Tipps 2008 9 02.06.2008 12:33
Übergeben von Variablen an in PHP eingebundenes Perl-Script shredder01 PHP Tipps 2008 3 04.04.2008 09:25
Datei mit Variablen so includen, dass Variablen nutzbar? BartTheDevil89 PHP Tipps 2008 6 22.01.2008 20:57
Variablen von Funktionen außerhalb nutzen Wing PHP Tipps 2008 5 28.09.2007 17:05
unerklärliches Leeren von Variablen KuShi PHP Tipps 2007 2 08.07.2007 15:19
Teil einer Variablen mit einer Variablen ersetzen ? simsalabim PHP Tipps 2007 11 20.03.2007 20:36
Variable aus Variablen zusammensetzen juhuwoorps PHP Tipps 2007 1 28.11.2005 21:50
Variablen übergeben bzw. auslesen? PHP Tipps 2005 4 30.01.2005 03:56
2 variablen in einem Value tag PHP Tipps 2005 17 26.01.2005 20:32
[Erledigt] register globals off bei variablen Variablen... PHP Tipps 2005 4 25.01.2005 17:50
php variablen in mysql PHP Tipps 2004-2 8 06.12.2004 16:41
Variablen Namen zuweisen dh1sbg PHP Tipps 2004-2 3 12.11.2004 17:12
Variablen per adresse übergeben rocco PHP Tipps 2004 7 24.07.2004 12:03

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php \ob_start()\ in \klasse\, ob_start include_once probleme, php include_once ob_start, ob_start(); include_once, ob_start variablen leer, ob_start and global, php variablenübergabe probleme ob_start();, ob_start() problem und templates, \ob_start\ global

Alle Zeitangaben in WEZ +1. Es ist jetzt 18:19 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