/**
* This class loads class include files with a specific prefix and suffix
*
- * @author Roland Haeder <webmaster@ship-simu.org>
+ * @author Roland Haeder <webmaster@shipsimu.org>
* @version 0.0.0
- * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2012 Core Developer Team
+ * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2013 Core Developer Team
* @license GNU GPL 3.0 or any newer version
- * @link http://www.ship-simu.org
+ * @link http://www.shipsimu.org
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
private $ignoreList = array();
/**
- * Debug this class loader? (true = yes, false = no)
+ * Debug this class loader? (TRUE = yes, FALSE = no)
*/
private $debug = FALSE;
*/
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
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
*
*/
$basePath2 = realpath($basePath);
- // If the basePath is false it is invalid
+ // If the basePath is FALSE it is invalid
if ($basePath2 === FALSE) {
/* @todo: Do not die here. */
exit(__METHOD__ . ':Cannot read ' . $basePath . ' !');
// Get a new iterator
//* DEBUG: */ echo "<strong>Base path: {$basePath}</strong><br />\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();