0

私は PHP マジック メソッドの経験があまりなく、Laravel フレームワークと対話する暗黙のゲッターとセッターを作成しようとしています。アクセサーとミューテーターがあることはわかっていますが、明示的に宣言する必要があります。私がしたいのは、それらを宣言するのではなく、ある種の暗黙的な関数にすることです。これがZendフレームワークで行われているのを見た、それは次のようなものでした

public function __call ($method, $params) {

    $property = strtolower($this->_getCamelCaseToUnderscoreFilter()->filter(substr($method, 3)));

    if (!property_exists($this, $property))
        return null;
    // Getters
    elseif (substr($method, 0, 3) == 'get')
    {
        return $this->$property;
    }
    // Setters
    elseif (substr($method, 0, 3) == 'set')
    {
        $this->$property = $params[0];
        return $this;
    }
    else
        return null;
}

この機能を備えたモデルがあれば、$model->getProperty()または$model->setProperty($property). しかし、Laravelにどのように適用できるかわかりません。何か案が?

4

1 に答える 1