私は 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にどのように適用できるかわかりません。何か案が?