Перегрузка set и get методов
Разрабатывая свои модули для движка, столкнулся с большим количеством сущностей с единообразными методами setVar() и getVar(), тело которых состояло из одной строчки:
В связи с этим дописал перегрузку методов у класса Entity:
Теперь, в классах, наследуемых от Entity, нет необходимости писать методы для простейших свойств сущности и можно их вызывать просто так :)
Вещь банальная, но, возможно, кому-нибудь пригодиться.
P.S.: есть также вариант с __get и __set для синтаксиса типа $oObject->id и $oObject->id = $id, но это будет немного отличаться от принятого синтаксиса в движке.
public function getId() {
return $this->_aData['id'];
}
public function setId($data) {
$this->_aData['id']=$data;
}
В связи с этим дописал перегрузку методов у класса Entity:
public function __call($sName, $aArgs)
{
$sActionType = substr( $sName, 0,3 );
$sFieldName = strtolower( substr( $sName, 3 ) );
if( $sActionType == 'get' && isset( $this->_aData[$sFieldName ] ) )
{
return $this->_aData[$sFieldName ];
}
if( $sActionType == 'set' && isset( $aArgs[0] ) )
{
$this->_aData[$sFieldName ] = $aArgs[0];
return true;
}
return null;
}
Теперь, в классах, наследуемых от Entity, нет необходимости писать методы для простейших свойств сущности и можно их вызывать просто так :)
Вещь банальная, но, возможно, кому-нибудь пригодиться.
P.S.: есть также вариант с __get и __set для синтаксиса типа $oObject->id и $oObject->id = $id, но это будет немного отличаться от принятого синтаксиса в движке.
2 комментария