Alternativen für Restriktiven Property-Zugriff im Model (OOP)
bearbeitet vonmoin,
wie kann man den Zugriff auf Properties im Model beschränken ohne auf Methoden im Model zurück zu greifen z.B. `$model->qux`{:.language-php} und nicht `$model->getQux()`{:.language-php}?
Ich möchte Methoden im Model nicht unbedingt verwenden wenn es nur ein paar zusammengehaltende Strings sein sollen.
Meine Lösung:
~~~php
trait TraitStaticInstance {
public function __set( $property, $value ) : void {};
public function __get( $property ) : void {};
}
~~~
~~~php
class FoobarModel {
use TraitStaticInstance;
public $qux;
public $tuk;
public function __construct ( string $qux, string $tux ) {
$this->qux = $qux;
$this->tux = $tux;
}
}
~~~
Output:
~~~php
$fb = new FoobarModel();
$fb->qux = 'qux'; // geht leider
$fb->tux = 'tux'; // geht leider
$fb->fu = 'fu'; // gteht nicht
echo $fb->qux;
echo $fb->tuk;
echo $fb->buz; // geht nicht
~~~
Etwas bessere habe ich im Internet nicht gesehen 😕. Habt ihr mehr Erfolg???
lgmb