paragoge: SMARTY

In Smarty gibt es eine sehr praktische plugin resource, die Daten aus einer Datenbank nur mit einem winzigen Befehl holen kann:
$tpl->display("db:$p"); wo $p der Name des Inhalts des Feldes tpl_name von  einer Table dessen Name tpl ist.
Die Hauptfunktion befindet sich in der Datei resource.db.php im Ordner smarty/plugin:

function smarty_resource_db_source($tpl_name, &$tpl_source, &$smarty)  
{  
    Global $db;  
    $rs = $db->Execute("SELECT tpl_title FROM tpl WHERE tpl_name='$tpl_name' ORDER BY ts_create DESC LIMIT 1");  
    if ($rs->RecordCount() == 1) {  
        $tpl_source = $rs->fields['tpl_title'];  
        return true;  
    } else {  
        return false;  
    }  
}

Meine Frage:
Warum funktioniert noch diese Funktion wenn ich nur

function smarty_resource_db_source()  
{  
}

schreibe!?

Danke, mich Richtung Wissen zu lenken.

  1. Hallo,

    mal ins Blaue gefragt:
    Koennte es sein, dass die Methode an einer anderen Stelle ueberschrieben wird?

    Was sagen deine Debugausgaben? Wo weicht der Stacktrace von deinen Erwartungen ab?
    Ein biszchen mehr Informationen waeren hilfreich.

    Mfg
    Peter

    1. Wenn ich absichtlich eine Klammer entferne : ( statt (), dann erscheint endlich nichts wie erwartet.
      Deshalb, denke ich, dass die Methode nicht an einer anderen Stelle ueberschrieben. Alles befindet sich in einem workspace von eclipse.

      Was sagen deine Debugausgaben? Wo weicht der Stacktrace von deinen Erwartungen ab?

      Keine Fehler. Das Ergebnis ist nur sehr erstaunlich! Wo  holt sich dann die function die Werte der Parameter!?

      Gruss

      1. Moin!

        Smarty "kompiliert" doch die Templates. Kann es sein, dass der Code dann in den komilierten Templates (Verzeichnis templates_c) steht?

        Tommi

        1. templates_c ist jetzt leer und immer wieder keine Fehler!
          Vielleicht eine cache Frage in internal browser von eclipse? Aber dann sollte auch nicht auf einer fehlenden Klammer reagieren!