Hallo MB,
was Du da tust, ist nicht ganz transparent, und mutmaßlich auch nicht völlig sauber.
Du schreibst im Sourcecode also Token::add('name', 'value')
.
Welche Programmiersprache ist das? PHP? Schreibst Du das tatsächlich so im Sourcecode oder wolltest Du nur andeuten, dass add
eine Methode der Klasse Token ist?
Worauf will ich hinaus? Eine statische Methode würde bedeuten, dass Du eine Klasse Token hast, die statisch einen Satz von key-value Paaren enthält. Was ausschließt, dass es zur einem Zeitpunkt mehr als einen Satz dieser Paare geben kann, und das wäre unnötig einschränkend. Du solltest auf jeden Fall mit einer Token-Instanz arbeiten, nicht mit der statischen Klasse.
Was mir auch nicht klar ist: Woher weiß die Token-Klasse, welches Replacement-Muster für {#user#} anzuwenden ist? Ist es immer "<i class='$tokenname'>$tokenvalue</i>"
? Auch das wäre unnötig starr.
Wie legst Du die Replacement-Muster fest? An dieser Stelle wäre es möglich, erweiterte Replacements vorzusehen (Formatierer genannt). Bevor ich da in eine Diskussion einsteige, würde ich gern mehr von dem wissen, wie Du deine Templates verwendest.
Du könntest, statt das Rad selbst zu erfinden, auch fertige Template-Libraries einsetzen. Welche aktuell die beliebteste ist, weiß ich nicht, ich kenne nur Smarty. Das ist zwar schon ziemlich alt, wird aber noch betreut und ist gut dokumentiert.
Rolf
sumpsi - posui - obstruxi