X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Fclasses%2Fmiddleware%2Fcompressor%2Fclass_CompressorChannel.php;h=b88142642733cebf86c392a538fdf3b1fe669b4c;hp=e48e091a3784c2d201cc389c83953514896dada6;hb=42bc0e1fc5ae4653fe04c9d41474c874a0050b69;hpb=1b7df549b9e8eb283d201606489c0e388c7917a2 diff --git a/inc/classes/middleware/compressor/class_CompressorChannel.php b/inc/classes/middleware/compressor/class_CompressorChannel.php index e48e091a37..b881426427 100644 --- a/inc/classes/middleware/compressor/class_CompressorChannel.php +++ b/inc/classes/middleware/compressor/class_CompressorChannel.php @@ -21,11 +21,17 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -class CompressorChannel extends BaseMiddleware { - // Output handler instance +class CompressorChannel extends BaseMiddleware implements Registerable { + /** + * Real compressor instance + */ private $compressor = null; - // Public constructor + /** + * Protected constructor + * + * @return void + */ protected function __construct () { // Call parent constructor! parent::__construct(__CLASS__); @@ -34,10 +40,16 @@ class CompressorChannel extends BaseMiddleware { $this->setObjectDescription("Komprimierungshandler"); // Create an unique ID - $this->createUniqueID(); + $this->generateUniqueId(); } - // Create a new compressor channel based a given compression handler + /** + * Create a new compressor channel based a given base directory where + * we shall look for compressor classes + * + * @param $baseDir Directory which holds our compressor classes + * @return $cInstance A prepared instance of this class + */ public final static function createCompressorChannel ($baseDir) { // Get new instance $cInstance = new CompressorChannel(); @@ -53,7 +65,7 @@ class CompressorChannel extends BaseMiddleware { $dirPointer = FrameworkDirectoryPointer::createFrameworkDirectoryPointer($baseDir); // Read all directories but no sub directories - while ($dir = $dirPointer->readDirectoryExcept(array("..", ".", ".htaccess"))) { + while ($dir = $dirPointer->readDirectoryExcept(array("..", ".", ".htaccess", ".svn"))) { // Is this a class file? if ((substr($dir, 0, 6) == "class_") && (substr($dir, -4, 4) == FrameworkConfiguration::getInstance()->readConfig('php_extension'))) { // Get the compressor's name. That's why you must name @@ -61,35 +73,20 @@ class CompressorChannel extends BaseMiddleware { // must keep on class in one file. $class = substr($dir, 6, -4); - // Create eval command - $eval = sprintf("\$tempInstance = %s::create%s();", - $class, - $class - ); - - // Debug message - if ((defined('DEBUG_EVAL')) || (defined('DEBUG_ALL'))) $cInstance->getDebugInstance()->output(sprintf("[%s:] Konstruierte PHP-Anweisung:
%s

\n", - $cInstance->__toString(), - htmlentities($eval) - )); - - // Run it. This will create an instance to the current class - eval($eval); + // Get an instance from our object factory + $tempInstance = ObjectFactory::createObjectByName($class); - // Is the instance valid? We have the stream handler here - if ((!is_null($tempInstance)) && (method_exists($tempInstance, 'compressStream')) && (method_exists($tempInstance, 'decompressStream'))) { - // Okay, this handler is valid - $cInstance->setCompressor($tempInstance); + // Set the compressor + $cInstance->setCompressor($tempInstance); - // No more searches required because we have found a valid compressor stream - break; - } - } - } + // No more searches required because we have found a valid compressor stream + break; + } // END - if + } // END - while // Close the directory $dirPointer->closeDirectory(); - } + } // END - if // Check again if there is a compressor if ( @@ -100,7 +97,7 @@ class CompressorChannel extends BaseMiddleware { ) { // Set the null compressor handler. This should not be configureable! $cInstance->setCompressor(ObjectFactory::createObjectByName('NullCompressor')); - } + } // END - if // Return the compressor instance return $cInstance;