blob: 302bb306fde086ee82a9dbbd70d7534e4826e0ce (
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_Session {
protected $_sessionID;
protected $_alphasessionID;
protected $_clientID;
protected $_bootmenuentryID;
protected $_bootosID;
protected $_bootisoID;
protected $_membershipID;
protected $_personID;
protected $_time;
protected $_ip;
protected $_ip6;
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 session property');
}
$this->$method($value);
}
public function __get($name) {
$method = 'get' . $name;
if (('mapper' == $name) || !method_exists($this, $method)) {
throw new Exception('Invalid session 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->_sessionID;
}
public function setID($_sessionID) {
$this->_sessionID = $_sessionID;
return $this;
}
public function getAlphasessionID() {
return $this->_alphasessionID;
}
public function setAlphasessionID($_alphasessionID) {
$this->_alphasessionID = $_alphasessionID;
return $this;
}
public function getClientID() {
return $this->_clientID;
}
public function setClientID($_clientID) {
$this->_clientID = $_clientID;
return $this;
}
public function getBootmenuentryID() {
return $this->_bootmenuentryID;
}
public function setBootmenuentryID($_bootmenuentryID) {
$this->_bootmenuentryID = $_bootmenuentryID;
return $this;
}
public function getBootosID() {
return $this->_bootosID;
}
public function setBootosID($_bootosID) {
$this->_bootosID = $_bootosID;
return $this;
}
public function getBootisoID() {
return $this->_bootisoID;
}
public function setBootisoID($_bootisoID) {
$this->_bootisoID = $_bootisoID;
return $this;
}
public function getMembershipID() {
return $this->_membershipID;
}
public function setMembershipID($_membershipID) {
$this->_membershipID = $_membershipID;
return $this;
}
public function getPersonID() {
return $this->_personID;
}
public function setPersonID($_personID) {
$this->_personID = $_personID;
return $this;
}
public function getTime() {
return $this->_time;
}
public function setTime($_time) {
$this->_time = $_time;
return $this;
}
public function getIp() {
return $this->_ip;
}
public function setIp($_ip) {
$this->_ip = $_ip;
return $this;
}
public function getIp6() {
return $this->_ip6;
}
public function setIp6($_ip6) {
$this->_ip6 = $_ip6;
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;
}
}
|