Struppi: sprintf ein array übergeben.

Beitrag lesen

var $msg = array(

'FILE_OPEN' => 'Datei "%s" konnte nicht geöffnet werden, weil: %s',
  'TEXT_TOO_BIG' => 'Der Text "%s" hat %s Zeichen, darf aber nur %s Zeichen haben',
  'NO' => 'Aktion ist nicht erlaubt',
... usw
);


>   
> Jau, gehen tut das natürlich auch.  
> >   
> > Die Meldungen tauchen natürlich nicht im Template auf, sondern werden damit befüllt  
> > `$this->template->set('error', $this->text->_('FILE_OPEN', $file, ???));`{:.language-php}  
>   
> Logisch, im Template wären ja auch Textversatzstücke gespickt mit Variablen-Echos, die u.U. dann vom Namen her schon etwas aussagekräfter wären als "%s". Vermutlich ists aber auch eine Frage dessen, was man schon gewohnt ist.  
  
Der Name ist ja z.b. 'FILE\_OPEN\_ERROR' das halte ich für aussagekräftig, die %s sind ja nur die Platzhalter im String den ich gar nicht mehr sehe.  
  
Mir ist aber nicht klar, wie du das mit einem Templatesystem lösen würdest.  
  

> >   
> > (ich weiß auch noch nicht, wie man an die Fehlermeldung kommt warum ein fopen() fehlgeschlagen ist, in Perl gibt es dafür die Variabel $!, aber das krieg ich noch raus, steht wahrscheinlich in der englischen Doku)  
>   
> Was haben denn die Fehlermeldungen mit fopen() zu tun? Du kennst PHP file\_get/put\_contents() und auch un/serialize()?  
  
Was das jetzt damit zu tun hat, dass wenn ich ein fopen mache und es dabei zu einem Fehler kommt und dies ausgeben möchte, weiß ich auch nicht. Die Meldungen waren ein Beispiel für Fehler die auftreten, es gibt ja viele Stellen wo man gerne Fehlermeldungen ausgeben möchte, irgendwie glaube ich dir ist immer noch nicht so ganz klar was ich mit meiner Text Klasse machen möchte.  
  
Struppi.