diff options
author | Thomas Lange <code@nerdmind.de> | 2021-06-25 22:13:59 +0200 |
---|---|---|
committer | Thomas Lange <code@nerdmind.de> | 2021-06-25 22:13:59 +0200 |
commit | a86bdc6b5bab78b4026f44161413f4e482df42e4 (patch) | |
tree | 76ffd745780671371272e97b3eeac85e154e236e /core/namespace/ORM/Entity.php | |
parent | 366d0de19c012821ef587d5fdb9557c339b43303 (diff) | |
download | blog-a86bdc6b5bab78b4026f44161413f4e482df42e4.tar.gz blog-a86bdc6b5bab78b4026f44161413f4e482df42e4.tar.xz blog-a86bdc6b5bab78b4026f44161413f4e482df42e4.zip |
Reorganize namespaces
Diffstat (limited to 'core/namespace/ORM/Entity.php')
-rw-r--r-- | core/namespace/ORM/Entity.php | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/core/namespace/ORM/Entity.php b/core/namespace/ORM/Entity.php new file mode 100644 index 0000000..9cc7755 --- /dev/null +++ b/core/namespace/ORM/Entity.php @@ -0,0 +1,49 @@ +<?php +namespace ORM; + +abstract class Entity implements EntityInterface { + protected $id; + protected $time_insert; + protected $time_update; + + #=============================================================================== + # Get attribute + #=============================================================================== + public function get(string $attribute) { + return $this->{$attribute} ?? NULL; + } + + #=============================================================================== + # Set attribute + #=============================================================================== + public function set(string $attribute, $value) { + return $this->{$attribute} = $value; + } + + #=============================================================================== + # Return ID + #=============================================================================== + final public function getID(): int { + return $this->id; + } + + #=============================================================================== + # Get all attributes + #=============================================================================== + public function getAll(array $exclude = []): array { + $attributes = get_object_vars($this); + + return array_filter($attributes, function($attribute) use($exclude) { + return !in_array($attribute, $exclude); + }, ARRAY_FILTER_USE_KEY); + } + + #=============================================================================== + # Get array with all non-false attributes + #=============================================================================== + public function getFilteredAttributes(): array { + return array_filter(get_object_vars($this), function($value) { + return $value !== FALSE; + }); + } +} |