Inject a logger into Horde_Image_Effect objects
authorMichael J. Rubinsky <mrubinsk@horde.org>
Mon, 27 Sep 2010 16:00:42 +0000 (12:00 -0400)
committerMichael J. Rubinsky <mrubinsk@horde.org>
Mon, 27 Sep 2010 16:02:40 +0000 (12:02 -0400)
framework/Image/lib/Horde/Image/Base.php
framework/Image/lib/Horde/Image/Effect.php

index 1ea55e7..0ba2507 100644 (file)
@@ -338,6 +338,7 @@ abstract class Horde_Image_Base extends EmptyIterator
     public function addEffect($type, $params)
     {
         $class = str_replace('Horde_Image_', '', get_class($this));
+        $params['logger'] = $this->_logger;
         $effect = Horde_Image_Effect::factory($type, $class, $params);
         $effect->setImageObject($this);
         return $effect->apply();
index 8c0f870..cea8ea0 100644 (file)
@@ -23,6 +23,8 @@ class Horde_Image_Effect
      */
     protected $_image = null;
 
+    protected $_logger;
+
     /**
      * Effect constructor.
      *
@@ -51,6 +53,11 @@ class Horde_Image_Effect
         $this->_image = &$image;
     }
 
+    public function setLogger($logger)
+    {
+        $this->_logger = $logger;
+    }
+
     public function factory($type, $driver, $params)
     {
         if (is_array($type)) {
@@ -85,6 +92,10 @@ class Horde_Image_Effect
             throw new Horde_Image_Exception(sprintf("Horde_Image_Effect %s for %s driver not found.", $type, $driver));
         }
 
+        if (!empty($params['logger'])) {
+            $effect->setLogger($params['logger']);
+        }
+
         return $effect;
     }