diff options
| author | George Halkiadakis <gchalkiadakis@sklavenitis.co.gr> | 2023-03-12 07:16:23 +0200 |
|---|---|---|
| committer | George Halkiadakis <gchalkiadakis@sklavenitis.co.gr> | 2023-03-12 07:16:23 +0200 |
| commit | 7076343338ae3439f3c86f01144818abe8c31978 (patch) | |
| tree | 794abb1e6b8f821091fd095341885496b6dad51d /core/classes/Repository.php | |
| parent | 47cbb529f5723b246125ae083a193e11481b89ef (diff) | |
| download | classroom-7076343338ae3439f3c86f01144818abe8c31978.tar.gz classroom-7076343338ae3439f3c86f01144818abe8c31978.tar.bz2 classroom-7076343338ae3439f3c86f01144818abe8c31978.zip | |
add container helpers; constuct public directory-tree
Diffstat (limited to 'core/classes/Repository.php')
| -rw-r--r-- | core/classes/Repository.php | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/core/classes/Repository.php b/core/classes/Repository.php new file mode 100644 index 0000000..c01d0c1 --- /dev/null +++ b/core/classes/Repository.php @@ -0,0 +1,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); + } +}
\ No newline at end of file |
