X-Git-Url: https://git.mxchange.org/?p=core.git;a=blobdiff_plain;f=inc%2Floader%2Fclass_ClassLoader.php;h=eea558055fee071088fdac0eefd59d9f53e3e2a2;hp=b50f3695793a02ad453f559560646c522239b38e;hb=2b85c64a9fedc1f93ce3495a852113c3c5b651b2;hpb=fdc6a02b5e6c2155cda61fcc345c7583b734ab85
diff --git a/inc/loader/class_ClassLoader.php b/inc/loader/class_ClassLoader.php
index b50f3695..eea55805 100644
--- a/inc/loader/class_ClassLoader.php
+++ b/inc/loader/class_ClassLoader.php
@@ -98,6 +98,17 @@ class ClassLoader {
*/
private $total = 0;
+ /**
+ * Framework/application paths for classes, etc.
+ */
+ private static $frameworkPaths = array(
+ 'exceptions', // Exceptions
+ 'interfaces', // Interfaces
+ 'main', // General main classes
+ 'middleware' // The middleware
+ );
+
+
/**
* The protected constructor. Please use the factory method below, or use
* getSelfInstance() for singleton
@@ -157,6 +168,44 @@ class ClassLoader {
return $loaderInstance;
}
+ /**
+ * Scans for all framework classes, exceptions and interfaces.
+ *
+ * @return void
+ */
+ public static function scanFrameworkClasses () {
+ // Cache loader instance
+ $loaderInstance = self::getSelfInstance();
+
+ // Load all classes
+ foreach (self::$frameworkPaths as $className) {
+ // Try to load the framework classes
+ $loaderInstance->scanClassPath('inc/classes/' . $className . '/');
+ } // END - foreach
+ }
+
+ /**
+ * Scans for application's classes, etc.
+ *
+ * @return void
+ */
+ public static function scanApplicationClasses () {
+ // Get config instance
+ $cfg = FrameworkConfiguration::getSelfInstance();
+
+ // Load all classes for the application
+ foreach (self::$frameworkPaths as $class) {
+ // Create path name
+ $path = sprintf('%s/%s/%s', $cfg->getConfigEntry('application_path'), $cfg->getConfigEntry('app_name'), $class);
+
+ // Is the path readable?
+ if (is_dir($path)) {
+ // Try to load the application classes
+ ClassLoader::getSelfInstance()->scanClassPath($path);
+ } // END - if
+ } // END - foreach
+ }
+
/**
* Initializes our loader class
*
@@ -279,9 +328,9 @@ class ClassLoader {
// Get a new iterator
//* DEBUG: */ echo "Base path: {$basePath}
\n";
- $iterator = new RecursiveDirectoryIterator($basePath);
- $recursive = new RecursiveIteratorIterator($iterator);
- foreach ($recursive as $entry) {
+ $iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($basePath));
+
+ foreach ($iterator as $entry) {
// Get filename from iterator
$fileName = $entry->getFileName();