Matti Mäkitalo: Variable an eine Klasse binden

Beitrag lesen

Hi,

idealerweise hätte ich das, was in Perl mit tie() möglich ist, auch in PHP. Es wird eine Variable (array) an eine Klasse gebunden, fiktiver Code:

$cfg = array();
$tied = tie($cfg, 'CFG');

$d = $cfg['default'];
/* hier soll über die Klasse eine Methode aufgerufen werden, welche auf den angeforderten index 'default' ein weiteres Array legt.
*/

// Noticer: indefined Index


>   
> Wie könnte ich solch ein Verhalten in PHP implementieren? Hat jemand einen Ansatz?  
  
Ich würde versuchen, darauf zu verzichten. Es scheint mir, als ob dieser Ansatz ziemlich genau [Primitive Obsession](http://c2.com/cgi/wiki?PrimitiveObsession) entspricht: du verwendest einen array, obwohl deine Daten kein reiner Array sind sondern eine Sonderbedeutung haben (welches du durch das `tie()`{:.language-php} ausdrücken willst).  
  
Ein IMHO(!) besserer Ansatz ist es, eine Konfigurationsklasse zu schreiben (ich nehme an, dass cfg für config stehen soll). Dort schreibst du dann deinen []-Operator (also eine Methode `get($key)`{:.language-php}, und darin kannst du dann jegliche Sonderbedeutung reinpacken, die du haben willst.  
  
Bis die Tage,  
Matti