php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 04.11.2009, 08:40  
Neuer Benutzer
 
Registriert seit: 04.11.2009
Beiträge: 8
PHP-Kenntnisse:
Fortgeschritten
Powie befindet sich auf einem aufstrebenden Ast
Powie eine Nachricht über ICQ schicken Powie eine Nachricht über MSN schicken
Standard [Erledigt] Problem mit Smarty extend

Hallöchen. Ich bin beim antesten der Smarty 3 Beta auf eine Merkwürdigkeit gestossen die ich mir aktuell nicht so recht erklären kann.

Ich habe eine eigene Klasse welche die originale Smarty Klasse erweitert.

-> class meinsmarty extends Smarty { ......

Bisher habe ich darin Smarty folgendermassen aktiviert:

$this->Smarty();

Mit Smarty V3 hat sich am Construct etwas geändert, es funktioniert so nicht mehr, ich muss Smarty folgendermassen aktivieren:

$this->Smarty;

Was ist der Unterschied bei diesen beiden Varianten. Ich kann auch das Smarty V2 Objekt über den letzten beschriebenen Weg erzeugen, dann fehlen mir aber die Session Variablen in Smarty ($smarty.session.xxxx).
Powie ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 04.11.2009, 08:45  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.234
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Was meinst du mit aktivieren? Wo genau steht dein Code? Welche PHP-Version hast du?
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline  
Alt 04.11.2009, 08:50  
Neuer Benutzer
 
Registriert seit: 04.11.2009
Beiträge: 8
PHP-Kenntnisse:
Fortgeschritten
Powie befindet sich auf einem aufstrebenden Ast
Powie eine Nachricht über ICQ schicken Powie eine Nachricht über MSN schicken
Standard

Ich habe da php 5.2.10.

Code:

PHP-Code:
class meinsmarty extends Smarty {
    
$this->Smarty();
    
//......

Powie ist offline  
Alt 04.11.2009, 08:57  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.234
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Sorry, aber dein Code ist Dummfug und gibt einen Parse-Fehler. Du bezeichnest dich selbst wirklich als Fortgeschritten?
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline  
Alt 04.11.2009, 09:08  
Neuer Benutzer
 
Registriert seit: 04.11.2009
Beiträge: 8
PHP-Kenntnisse:
Fortgeschritten
Powie befindet sich auf einem aufstrebenden Ast
Powie eine Nachricht über ICQ schicken Powie eine Nachricht über MSN schicken
Standard

Wieso sollte das Dummfug sein Das ist ja ein freundlicher Empfang hier....

Ich kann das gern noch etwas erweitern. Man includet natürlich vorher die Smarty Klasse in seinem Script!

PHP-Code:
require_once('smarty/Smarty.class.php'); 
Powie ist offline  
Alt 04.11.2009, 09:26  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.234
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Ich habe die Frage gestellt, wo sich dein Code genau befindet. Als Antwort hätte beispielsweise der Konstruktor kommen können. Es geht nicht darum, dich hier niederzumachen. Ich versuche, dir zu helfen, dazu müsste ich aber ansatzweise verstehen, was du tust. Ich kann mir zwar denken, wo das Problem liegt aber das ist nicht viel mehr als ein Schuss ins Blaue.

Normal: Als Elemente einer Klasse sind ausschließlich Variablen- oder Methoden-Deklarationen erlaubt. Dein "$this->Smarty()" ist an dieser Stelle schlichtweg ein Parse-Fehler.

Fortgeschritten zu sein, dazu gehört auch, dass man lernt, wie man ein Problem schildert. Denke dran: Hier hat niemand eine Ahnung von deinem Script. Niemand hat eine Idee, was du tust. Als Fortgeschrittener weiß man, dass dein obiges Script einfach nur Fehler erzeugt und wenn du das aber weißt, dann ist das Posten eines solchen Scriptes nach meiner Nachfrage fast schon frech

So und nun setz dich nochmal in Ruhe hin und überarbeitet deinen Post, so dass ein Außenstehender versteht, wo dein problem ist.
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline  
Alt 04.11.2009, 09:39  
Neuer Benutzer
 
Registriert seit: 04.11.2009
Beiträge: 8
PHP-Kenntnisse:
Fortgeschritten
Powie befindet sich auf einem aufstrebenden Ast
Powie eine Nachricht über ICQ schicken Powie eine Nachricht über MSN schicken
Standard

Das Script bei mir erzeugt keinen Parse Fehler, und auch keine weiteren Probleme. Es funktioniert mit beiden Varianten. Der Unterschied ist lediglich das bei Variante A Session Variablen in Smarty verfügbar sind und in Variante B nicht. Eventuell ist das gar ein Smarty Bug. Mir geht es auch garnicht drum das Problem zu lösen!
Ich möchte nur gern den Unterschied verstehen zwischen A und B.
Powie ist offline  
Alt 04.11.2009, 10:42  
Erfahrener Benutzer
 
Registriert seit: 30.07.2008
Beiträge: 1.167
PHP-Kenntnisse:
Fortgeschritten
xm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphäre
Standard

PHP-Code:
class meinsmarty extends Smarty {
    
$this->Smarty();
    
//......

Das funktioniert garantiert nicht! Genauso wenig wie
PHP-Code:
class meinsmarty extends Smarty {
    
$this->Smarty;
    
//......

Mach doch mal testweise error_reporting auf E_ALL
xm22 ist offline  
Alt 04.11.2009, 10:48  
Erfahrener Benutzer
 
Benutzerbild von Dark Guardian
 
Registriert seit: 10.10.2009
Beiträge: 2.630
PHP-Kenntnisse:
Fortgeschritten
Dark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekannt
Standard

In PHP 4 trug der Konstruktor einer Klasse den Namen der Klasse soweit ich weiss.

D.h.

PHP-Code:
class Smarty {

   function 
Smarty() { //<-- Konstruktor

   
}


In PHP5 heißt das Teil __construct(). Kenne mich mit Smarty und den PHP Abwärtskompatiblitäten nicht so aus, aber eigentlich müsste das die Frage klären.

Normalerweiße wäre
$this->Smarty -> Aufruf der Membervariablen Smarty
$this->Smarty() -> Aufruf der Memberfunktion Smarty, in PHP4 eben der Konstruktor, was für den Fall ohne Klammern wohl heißt das PHP in dem Falle dann ebenfalls vom Konstruktor ausgeht.

Dein Code spuckt übrigens folgendes aus:
Code:
Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION
Dark Guardian ist offline  
Alt 04.11.2009, 12:35  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.234
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Wenn es um Konstruktoraufrufe gehen würde, also um den parent-Konstruktor, passt aber die Aussage eingangs nicht.
Zitat:
$this->Smarty;
Dies ruft in PHP 5 niemals einen Konstruktor auf. Da nach nach den Angaben des Autors aber 5.2.x zum Einsatz kommt und beschrieben wird, dass es mit diesem Befehl (was wie du richtigerweise schreibst nichts anderes als ein Zugriff auf eine Membervariable ist) das geht, wäre wieder die Frage, was er da treibt und wo dieser Codeschnipsel versteckt ist. Womit ich wieder bei meinem Eingangspost und der dortigen Frage wäre.

Wenn ich eines nicht abkann, ist es Arroganz. Hilfe ablehnen ist eine Sache. Jedoch trotz besserem Wissen auf etwas zu bestehen, das ist Arroganz. Ich werde hier nicht mehr weiterhelfen und einen großen Bogen um das Thema machen.
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen 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
Smarty und das MVC [-UFO-]Melkor Software-Design 11 29.12.2008 13:01
Smarty + MySQL = immer falsche Ausgabe m0use` PHP Tipps 2006 44 21.11.2008 20:30
[Erledigt] Galerie Problem... coraplanet PHP Tipps 2008 4 06.06.2008 13:42
Problem mit Smarty ccfirefox HTML, Usability und Barrierefreiheit 1 25.10.2007 16:19
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
problem mit javascript und smarty snatch-ic HTML, Usability und Barrierefreiheit 2 08.06.2006 22:11
Smarty verschachtelt snatch-ic PHP Tipps 2006 16 28.02.2006 20:54
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
[Erledigt] wieder ein Problem bei phpmailer und smtp PHP Tipps 2006 24 07.02.2006 01:07
[Erledigt] Navigation auf Smarty umstellen?! PHP-Fortgeschrittene 3 10.01.2006 09:19
Problem mit Smarty b++ PHP Tipps 2005-2 1 12.09.2005 22:12
[Erledigt] Seltsames Problem mit Smarty PHP-Fortgeschrittene 3 28.07.2005 00:42
Smarty und PHP-Skript Problem PHP Tipps 2004-2 2 03.12.2004 22:27
frage zu smarty eQuin PHP-Fortgeschrittene 1 18.10.2004 16:21
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
smarty extends, extends smarty, smarty session fehlt, php extends, smarty 3 extends, smarty klasse erweitern, smarty 3 extend, smarty extends not working, php5 class smarty3, smarty 3 extends problem, class extends smarty, parse error: syntax error, unexpected t_variable smarty, smarty v, smarty extends funktioniert nicht, smrty fatal error: class \'smarty_internal_templatecompilerbas, smarty3 error_reporting pb, smrty extends, php 5.2 extends problems, smarty extends deutsch, smarty 3 extend smarty

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:50 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