classes/bfw/core/ReadonlyEntity.php
author Markus Broeker<broeker.markus@googlemail.com>
Sun, 14 Feb 2016 15:07:45 +0100
changeset 39 8b4f9c6136f4
parent 31 3a5ee3ba6006
permissions -rw-r--r--
Umstellung auf LF
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
39
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
     1
<?php
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
     2
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
     3
/**
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
     4
 * Copyright(C) 2015 Markus Bröker<broeker.markus@googlemail.com>
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
     5
 *
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
     6
 */
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
     7
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
     8
namespace bfw\core;
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
     9
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    10
/**
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    11
 * Class ReadonlyEntity
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    12
 *
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    13
 * @method string getId()
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    14
 */
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    15
class ReadonlyEntity extends Entity {
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    16
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    17
    /**
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    18
     * Nur Get-Methoden in dieser Entity
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    19
     *
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    20
     * @param $methodName
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    21
     * @param null $params
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    22
     * @return mixed
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    23
     */
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    24
    public function __call($methodName, $params = null) {
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    25
        $prefix = substr($methodName, 0, 3);
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    26
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    27
        $key = lcfirst(substr($methodName, 3));
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    28
        $key = strtolower(preg_replace('/([A-Z])/', "_$1", $key));
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    29
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    30
        if ($prefix == 'get') {
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    31
            if (array_key_exists($key, $this->data)) {
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    32
                return $this->data[$key];
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    33
            }
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    34
        }
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    35
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    36
        exit(sprintf('Unbekannte Methode %s(%s, %s) wurde aufgerufen.', $methodName, $key, $prefix));
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    37
    }
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    38
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    39
    /**
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    40
     * @return bool
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    41
     */
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    42
    public function store() {
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    43
        return false;
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    44
    }
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    45
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    46
    /**
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    47
     * @return bool
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    48
     */
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    49
    public function delete() {
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    50
        return false;
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    51
    }
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    52
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    53
    /**
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    54
     * @return bool
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    55
     */
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    56
    public function persist() {
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    57
        return false;
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    58
    }
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    59
8b4f9c6136f4 Umstellung auf LF
Markus Broeker<broeker.markus@googlemail.com>
parents: 31
diff changeset
    60
}