src/Orm/Entity.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php declare(strict_types=1);

namespace DrMVC\Orm;

/**
 * Class Entity
 * @package DrMVC\Orm
 *
 * @property int id
 * @method Entity getId(): int
 */
class Entity
{
    /**
     * Magic container
     *
     * @var array
     */
    private $data = [];

    /**
     * Get all fields
     *
     * @return array
     */
    public function getData(): array
    {
        return $this->data;
    }

    /**
     * @param string $name
     * @return mixed|null
     */
    public function __get(string $name)
    {
        return $this->data[$name] ?? null;
    }

    /**
     * @param string $name
     * @param $value
     */
    public function __set(string $name, $value)//: void 7.1
    {
        $this->data[$name] = $value;
    }

    /**
     * @param string $name
     * @return bool
     */
    public function __isset(string $name): bool
    {
        return isset($this->data[$name]);
    }

    /**
     * @param string $name
     */
    public function __unset(string $name)//: void 7.1
    {
        unset($this->data[$name]);
    }
}