From 515db0966127378c07fa203db27a70bf682d5144 Mon Sep 17 00:00:00 2001 From: pbarroca <pbarroca@afi-sa.fr> Date: Thu, 11 Jun 2015 11:36:44 +0200 Subject: [PATCH] rel #14064 : introduce simple entity class --- library/Class/Entity.php | 53 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 library/Class/Entity.php diff --git a/library/Class/Entity.php b/library/Class/Entity.php new file mode 100644 index 00000000000..b6c8fd56172 --- /dev/null +++ b/library/Class/Entity.php @@ -0,0 +1,53 @@ +<?php +/** + * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved. + * + * BOKEH is free software; you can redistribute it and/or modify + * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by + * the Free Software Foundation. + * + * There are special exceptions to the terms and conditions of the AGPL as it + * is applied to this software (see README file). + * + * BOKEH is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU AFFERO GENERAL PUBLIC LICENSE for more details. + * + * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE + * along with BOKEH; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + + +class Class_Entity { + protected $_attribs = []; + + public function __call($name, $params) { + if (!preg_match('/(get|set)(\w+)/', $name, $matches)) + throw new RuntimeException('Call to unknown method ' . $name); + + switch ($matches[1]) { + case 'get': + return $this->_get($matches[2]); + break; + case 'set': + $this->_set($matches[2], $params[0]); + return $this; + break; + } + + return $this; + } + + + protected function _get($name) { + return array_key_exists($name, $this->_attribs) ? + $this->_attribs[$name] : null; + } + + + protected function _set($name, $value) { + $this->_attribs[$name] = $value; + } +} -- GitLab