MB: Alternativen für Restriktiven Property-Zugriff im Model (OOP)

Beitrag lesen

moin,

wie kann man den Zugriff auf Properties im Model beschränken ohne auf Methoden im Model zurück zu greifen z.B. $model->qux und nicht $model->getQux()?

Ich möchte Methoden im Model nicht unbedingt verwenden wenn es nur ein paar zusammengehaltende Strings sein sollen.

Meine Lösung:

trait TraitStaticInstance {

  public function __set( $property, $value ) : void {};

  public function __get( $property ) : void {};
}
class FoobarModel {

  use TraitStaticInstance;

  public $qux;

  public $tuk;

  public function __construct ( string $qux, string $tux ) {
    $this->qux = $qux;
    $this->tux = $tux;
  }
}

Output:

$fb = new FoobarModel();

$fb->qux = 'hello world'; // geht leider
$fb->tux = 'hello world'; // geht leider
$fb->hi  = 'hello world'; // geht nicht

echo $fb->qux;
echo $fb->tuk;
echo $fb->by;  // geht nicht

Etwas bessere habe ich im Internet nicht gesehen 😕. Habt ihr mehr Erfolg???

lgmb

akzeptierte Antworten