diff options
author | Bernhard Posselt <nukeawhale@gmail.com> | 2013-03-20 12:19:17 +0100 |
---|---|---|
committer | Bernhard Posselt <nukeawhale@gmail.com> | 2013-03-20 12:19:17 +0100 |
commit | 0f0a7f0c473ba9c7ddbf4321ffb264fe2b58e33b (patch) | |
tree | 8831c994b43fda4d0a1ffc4af71d928ef083682e /db/entity.php | |
parent | de16ffbec02c6fb9f2866b0909af8668f3c733c7 (diff) |
moved entity to the appframework
Diffstat (limited to 'db/entity.php')
-rw-r--r-- | db/entity.php | 159 |
1 files changed, 0 insertions, 159 deletions
diff --git a/db/entity.php b/db/entity.php deleted file mode 100644 index a13bcce34..000000000 --- a/db/entity.php +++ /dev/null @@ -1,159 +0,0 @@ -<?php - -/** -* ownCloud - News -* -* @author Alessandro Copyright -* @author Bernhard Posselt -* @copyright 2012 Alessandro Cosentino cosenal@gmail.com -* @copyright 2012 Bernhard Posselt nukeawhale@gmail.com -* -* This library is free software; you can redistribute it and/or -* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE -* License as published by the Free Software Foundation; either -* version 3 of the License, or any later version. -* -* This library 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 this library. If not, see <http://www.gnu.org/licenses/>. -* -*/ - -namespace OCA\News\Db; - -abstract class Entity { - - public $id; - - private $tableName; - private $updatedFields; - - public function __construct($tableName){ - $this->updatedFields = array(); - $this->tableName = '*dbprefix*' . $tableName; - } - - - /** - * Each time a setter is called, push the part after set - * into an array: for instance setId will save Id in the - * updated fields array so it can be easily used to create the - * getter method - */ - public function __call($methodName, $args){ - - // setters - if(strpos($methodName, 'set') === 0){ - $attr = lcfirst( substr($methodName, 3) ); - - // setters should only work for existing attributes - if(property_exists($this, $attr)){ - $this->markFieldUpdated($attr); - $this->$attr = $args[0]; - } else { - throw new \BadFunctionCallException($attr . - ' is not a valid attribute'); - } - - // getters - } elseif(strpos($methodName, 'get') === 0) { - $attr = lcfirst( substr($methodName, 3) ); - - // getters should only work for existing attributes - if(property_exists($this, $attr)){ - return $this->$attr; - } else { - throw new \BadFunctionCallException($attr . - ' is not a valid attribute'); - } - } else { - throw new \BadFunctionCallException($methodName . - ' does not exist'); - } - - } - - - /** - * Mark am attribute as updated - * @param string $attribute the name of the attribute - */ - protected function markFieldUpdated($attribute){ - $this->updatedFields[$attribute] = true; - } - - - /** - * Transform a database columnname to a property - * @param string $columnName the name of the column - * @return string the property name - */ - public function columnToProperty($columnName){ - $parts = explode('_', $columnName); - $property = null; - - foreach($parts as $part){ - if($property === null){ - $property = $part; - } else { - $property .= ucfirst($part); - } - } - - return $property; - } - - - /** - * Transform a property to a database column name - * @param string $property the name of the property - * @return string the column name - */ - public function propertyToColumn($property){ - $parts = preg_split('/(?=[A-Z])/', $property); - $column = null; - - foreach($parts as $part){ - if($column === null){ - $column = $part; - } else { - $column .= '_' . lcfirst($part); - } - } - - return $column; - } - - - /** - * @return array array of updated fields for update query - */ - public function getUpdatedFields(){ - return $this->updatedFields; - } - - - /** - * Maps the keys of the row array to the attributes - * @param array $row the row to map onto the entity - */ - public function fromRow(array $row){ - foreach($row as $key => $value){ - $prop = $this->columnToProperty($key); - $this->$prop = $value; - } - } - - - /** - * @return string the table name - */ - public function getTableName(){ - return $this->tableName; - } - -}
\ No newline at end of file |