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/helpers/autoload.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/helpers/autoload.php')
| -rw-r--r-- | core/helpers/autoload.php | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/core/helpers/autoload.php b/core/helpers/autoload.php new file mode 100644 index 0000000..c4359c6 --- /dev/null +++ b/core/helpers/autoload.php @@ -0,0 +1,43 @@ +<?php +/** register class-autoloader + * + * NOTE: + * Composer is strongly recommended; it is a much better option + * and takes care for many more than just autoloading classes; + * + * This's a fair autoloader in case composer is not available; + * supports single and namespaced classes. + */ +spl_autoload_register( + function($className) { + + // in order to support common namespaced classes + // replace '\' with '/' to get the path + $classPath = str_replace('\\', DIRECTORY_SEPARATOR, $className); + + // check all possible classPaths for class + foreach(CLASSPATHS as $key => $basePath) { + + $file = APP_ROOT . $basePath . $classPath .'.php'; + + // if class-file exist, include it + if (file_exists($file)) { + require_once $file; + break; + } + + } + + // // Feel free to extend the fanctionality + // // example: + // // custom (exception) namespaced classes loader + // $customNSclasses = array( + // '\\George\\Class' => 'path/to/George/Class', + // '\\Mary\\Class' => 'path/to/Marias/Class', + // ... + // ); + // if array_key_exists($className) { + // require_once $customNSclasses[$className]; + // } + } +); |
