* @version $Id$
* @license http://opensource.org/licenses/gpl-2.0.php GNU GPL 2
*/
/**
* Classe generale devant etre etendue par toutes les autres
*/
class Fsb_model
{
/**
* Methode magique affichant inteligement un objet.
*
* Par exemple :
*
* echo $obj;
*
*
* @return string
*/
public function __toString()
{
$str = 'Classname : ' . get_class($this) . '
';
$str .= 'Properties :
';
return ($str);
}
/**
* Capture les methodes inexistantes et gere la surcharge de methode _set_*() et _get_*()
*
* @param string $method Nom de la methode
* @param array $attr Arguments de la methode
* @return mixed Valeur de retour de la methode
*/
public function __call($method, $attr)
{
$before = substr($method, 0, 5);
$after = substr($method, 5);
if ($before == '_set_')
{
$this->_set($after, $attr[0]);
return ;
}
else if ($before == '_get_')
{
return ($this->_get($after));
}
// Pour la methode magique __sleep() lors de la serialization
if ($method == '__sleep')
{
return (array_keys(get_object_vars($this)));
}
trigger_error('Call to undefined method ' . $method . ' in class ' . get_class(), FSB_ERROR);
}
/**
* Affecte une valeur a une propriete
*
* @param string $property Nom de la propriete
* @param mixed $value Valeur de la propriete
*/
public function _set($property, $value)
{
$this->$property = $value;
}
/**
* Recupere la valeur d'une propriete
*
* @param string $property Nom de la propriete
* @return mixed Valeur de la propriete
*/
public function _get($property)
{
if (isset($this->$property))
{
return ($this->$property);
}
return (null);
}
}
/* EOF */