blob: 97841ad4c68a63b78271b2b93e41fe92cb2b3ff8 (
plain) (
tree)
|
|
<?php
class Application_Model_Right
{
protected $_rightID;
protected $_rightcategoryID;
protected $_shortcut;
protected $_title;
protected $_description;
public function __construct(array $options = null)
{
if (is_array($options)) {
$this->setOptions($options);
}
}
public function __set($name, $value)
{
$method = 'set' . $name;
if (('mapper' == $name) || !method_exists($this, $method)) {
throw new Exception('Invalid right property');
}
$this->$method($value);
}
public function __get($name)
{
$method = 'get' . $name;
if (('mapper' == $name) || !method_exists($this, $method)) {
throw new Exception('Invalid right property');
}
return $this->$method();
}
public function setOptions(array $options)
{
$methods = get_class_methods($this);
foreach ($options as $key => $value) {
$method = 'set' . ucfirst($key);
if (in_array($method, $methods)) {
$this->$method($value);
}
}
return $this;
}
public function getID()
{
return $this->_rightID;
}
public function setID($_rightID)
{
$this->_rightID = $_rightID;
return $this;
}
public function getRightcategoryID()
{
return $this->_rightcategoryID;
}
public function setRightcategoryID($_rightcategoryID)
{
$this->_rightcategoryID = $_rightcategoryID;
return $this;
}
public function getShortcut()
{
return $this->_shortcut;
}
public function setShortcut($_shortcut)
{
$this->_shortcut = $_shortcut;
return $this;
}
public function getTitle()
{
return $this->_title;
}
public function setTitle($_title)
{
$this->_title = $_title;
return $this;
}
public function getDescription()
{
return $this->_description;
}
public function setDescription($_description)
{
$this->_description = $_description;
return $this;
}
/**
* Returns current data as associative array using ReflectionClass
*
* @return array Returns associative array containing model data
* If "get"-method not available (our primary keys) the function getID() is called
*/
public function toArray()
{
$reflectionClass = new ReflectionClass($this);
$properties = $reflectionClass->getProperties();
$result = array();
foreach ($properties as $property) {
$key = $property->name;
if (substr($key, 0, 1) != '_' && $this->$key !== null) {
$method = 'get' . ucfirst($key);
if ($reflectionClass->hasMethod($method)) {
$result[$key] = $this->$method();
} else {
$result[$key] = $this->$key;
}
}
elseif(substr($key, 0, 1) == '_' && $this->$key !== null) {
$key = substr($key, 1);
$method = 'get' . ucfirst($key);
if ($reflectionClass->hasMethod($method)) {
$result[$key] = $this->$method();
}else{
$result[$key] = $this->getID();
}
}
}
return $result;
}
}
|