+ * The protected constructor. Please use the factory method below, or use
+ * getSelfInstance() for singleton
+ *
+ * @return void
+ */
+ protected function __construct () {
+ // Is currently empty
+ }
+
+ /**
+ * The destructor makes it sure all caches got flushed
+ *
+ * @return void
+ */
+ public function __destruct () {
+ // Skip here if dev-mode
+ if (defined('DEVELOPER')) {
+ return;
+ } // END - if
+
+ // Skip here if already cached
+ if ($this->listCached === false) {
+ // Writes the cache file of our list away
+ $cacheContent = serialize($this->classes);
+ file_put_contents($this->listCacheFQFN, $cacheContent);
+ } // END - if
+
+ // Skip here if already cached
+ if ($this->classesCached === false) {
+ // Generate a full-cache of all classes
+ $cacheContent = '';
+ foreach ($this->loadedClasses as $fqfn) {
+ // Load the file
+ $cacheContent .= file_get_contents($fqfn);
+ } // END - foreach
+
+ // And write it away
+ file_put_contents($this->classCacheFQFN, $cacheContent);
+ } // END - if
+ }
+
+ /**
+ * Creates an instance of this class loader for given configuration instance