blob: f9e25598d03e9e3bf23ec64d3267c43b9d2d0a8b (
plain) (
tree)
|
|
<?php
/*
* Copyright (c) 2011 - OpenSLX GmbH, RZ Uni Freiburg
* This program is free software distributed under the GPL version 2.
* See http://gpl.openslx.org/
*
* If you have any feedback please consult http://feedback.openslx.org/ and
* send your suggestions, praise, or complaints to feedback@openslx.org
*
* General information about OpenSLX can be found at http://openslx.org/
*/
class Application_Model_Person {
protected $_personID;
protected $_title;
protected $_name;
protected $_firstname;
protected $_street;
protected $_housenumber;
protected $_city;
protected $_postalcode;
protected $_logindate;
protected $_registerdate;
protected $_email;
protected $_login;
protected $_password;
protected $_password_salt;
protected $_loginpassword;
protected $_suspend;
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 person property');
}
$this->$method($value);
}
public function __get($name) {
$method = 'get' . $name;
if (('mapper' == $name) || !method_exists($this, $method)) {
throw new Exception('Invalid person property');
}
return $this->$method();
}
public function setOptions(array $options) {
$methods = get_class_methods($this);
$options['passwordSalt'] = $options['password_salt'];
unset($options['password_salt']);
foreach ($options as $key => $value) {
$method = 'set' . ucfirst($key);
if (in_array($method, $methods)) {
$this->$method($value);
}
}
return $this;
}
public function getID() {
return $this->_personID;
}
public function setID($_personID) {
$this->_personID = $_personID;
return $this;
}
public function getTitle() {
return $this->_title;
}
public function setTitle($_title) {
$this->_title = $_title;
return $this;
}
public function getName() {
return $this->_name;
}
public function setName($_name) {
$this->_name = $_name;
return $this;
}
public function getFirstname() {
return $this->_firstname;
}
public function setFirstname($_firstname) {
$this->_firstname = $_firstname;
return $this;
}
public function getStreet() {
return $this->_street;
}
public function setStreet($_street) {
$this->_street = $_street;
return $this;
}
public function getHousenumber() {
return $this->_housenumber;
}
public function setHousenumber($_housenumber) {
$this->_housenumber = $_housenumber;
return $this;
}
public function getCity() {
return $this->_city;
}
public function setCity($_city) {
$this->_city = $_city;
return $this;
}
public function getPostalcode() {
return $this->_postalcode;
}
public function setPostalcode($_postalcode) {
$this->_postalcode = $_postalcode;
return $this;
}
public function getLogindate() {
return $this->_logindate;
}
public function setLogindate($_logindate) {
$this->_logindate = $_logindate;
return $this;
}
public function getRegisterdate() {
return $this->_registerdate;
}
public function setRegisterdate($_registerdate) {
$this->_registerdate = $_registerdate;
return $this;
}
public function getEmail() {
return $this->_email;
}
public function setEmail($_email) {
$this->_email = $_email;
return $this;
}
public function getLogin() {
return $this->_login;
}
public function setLogin($_login) {
$this->_login = $_login;
return $this;
}
public function getPassword() {
return $this->_password;
}
public function setPassword($_password) {
$this->_password = $_password;
return $this;
}
public function getLoginpassword() {
return $this->_loginpassword;
}
public function setLoginpassword($_loginpassword) {
$this->_loginpassword = $_loginpassword;
return $this;
}
public function setPasswordSalt($_password_salt) {
$this->_password_salt = $_password_salt;
return $this;
}
public function getPasswordSalt() {
return $this->_password_salt;
}
public function getSuspend() {
return $this->_suspend;
}
public function setSuspend($_suspend) {
$this->_suspend = $_suspend;
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;
}
}
|