]> git.mxchange.org Git - core.git/blobdiff - inc/classes/middleware/compressor/class_CompressorChannel.php
Copyright year updated, converted double->single quotes
[core.git] / inc / classes / middleware / compressor / class_CompressorChannel.php
index 0aa8205bae87b861829914996c346062639a8e69..f5fb945ba31ebf1716102506ccddb5a82925c462 100644 (file)
@@ -2,11 +2,11 @@
 /**
  * Middleware class for selecting the right compressor channel
  *
- * @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 - 2011 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
@@ -49,9 +49,7 @@ class CompressorChannel extends BaseMiddleware implements Registerable {
                // Is the compressor handler set?
                if (
                           (is_null($compressorInstance->getCompressor()))
-                       || (!is_object($compressorInstance->getCompressor()))
-                       || (!method_exists($compressorInstance->getCompressor(), 'compressStream'))
-                       || (!method_exists($compressorInstance->getCompressor(), 'decompressStream'))
+                       || (!$compressorInstance->getCompressor() instanceof Compressor)
                ) {
                        // Init base directory
                        $baseDir =
@@ -62,17 +60,24 @@ class CompressorChannel extends BaseMiddleware implements Registerable {
                        $dirPointer = FrameworkDirectoryPointer::createFrameworkDirectoryPointer($baseDir);
 
                        // Read all directories but no sub directories
-                       while ($directoryEntry = $dirPointer->readDirectoryExcept(array('..', '.', '.htaccess', '.svn'))) {
+                       while ($directoryEntry = $dirPointer->readDirectoryExcept(array('..', '.', '.htaccess', '.svn', 'class_NullCompressor.php'))) {
                                // Is this a class file?
                                if ((substr($directoryEntry, 0, 6) == 'class_') && (substr($directoryEntry, -4, 4) == '.php')) {
-                                       // Get the compressor's name. That's why you must name
-                                       // your files like your classes and also that's why you
-                                       // must keep on class in one file.
+                                       /* Get the compressor's name. That's why you must name
+                                        * your files like your classes and also that's why you
+                                        * must keep on class in one file.
+                                        */
                                        $className = substr($directoryEntry, 6, -4);
 
                                        // Get an instance from our object factory
                                        $tempInstance = ObjectFactory::createObjectByName($className);
 
+                                       // Is it null?
+                                       if (is_null($tempInstance)) {
+                                               // Then skip to the next one
+                                               continue;
+                                       } // END - if
+
                                        // Set the compressor
                                        $compressorInstance->setCompressor($tempInstance);
 
@@ -89,10 +94,10 @@ class CompressorChannel extends BaseMiddleware implements Registerable {
                if (
                           (is_null($compressorInstance->getCompressor()))
                        || (!is_object($compressorInstance->getCompressor()))
-                       || (!method_exists($compressorInstance->getCompressor(), 'compressStream'))
-                       || (!method_exists($compressorInstance->getCompressor(), 'decompressStream'))
+                       || (!$compressorInstance instanceof Compressor)
                ) {
                        // Set the null compressor handler. This should not be configureable!
+                       // @TODO Is there a configurable fall-back compressor needed, or is NullCompressor okay?
                        $compressorInstance->setCompressor(ObjectFactory::createObjectByName('NullCompressor'));
                } // END - if