blob: c01d0c15c70c6f545446d857b11386c6e9db286e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
<?php
/** Repository
* is an abstract class that strores entities
* and serves them via ::pull() method when needed
*
* it also has an ::echo() method to list the
*/
abstract class Repository
{
/** all repositories (need to) have
* one public static array named '$repository'
*/
public static $repository = [];
/** pull
* one entity from repository
* @param $entity (string): the label of the entity
*/
public static function pull($entity)
{
if (array_key_exists($entity, static::$repository)) {
return static::$repository[$entity];
} else die('repository does not exist');
}
/** echo
* lists the entities of the repository;
* by default it only lists the labes of the entities;
* @param $content (bool): if true serve contents along with the labels
* @return (array)
*/
public static function echo($content =false)
{
if ($content) return static::$repository;
else return array_keys(static::$repository);
}
}
|