2014-02-13 72 views
0

我需要使用具有相同名稱的模塊(https://github.com/kohana/image)的iMagick來擴展類圖像,但是我無法做到這一點。在Kohana中擴展圖像類3.3

我想添加一個新的方法調用「緩存」。這就是我想要做的事:

類/ Image.php

abstract class Image extends Kohana_Image {} 

類/ Kohana的/ Image.php

abstract class Kohana_Image { 

    public function cache() 
    { 
     $this->_do_cache(); 
    } 

    abstract protected function _do_cache(); 
} 

類/ Kohana的/圖像/ Imagick

class Kohana_Image_Imagick extends Image { 

    protected function _do_cache() 
    { 
     // do something here 
    } 

} 

這就是我所說的方法:

Image::factory(DOCROOT.'/media/img/myimage.jpg')->cache(); 

這是錯誤:

ErrorException [ Fatal Error ]: Call to undefined method Image_Imagick::cache() 

只是爲了讓你知道,iMagick正確安裝和精細使用本地圖片類的工作。

希望你們幫助我,謝謝。

回答

0

Have you read the documentation?

您必須:

Image::$default_driver = 'Imagick';

或者稱之爲factory指定驅動程序使用:

Image::factory(DOCROOT.'/media/img/myimage.jpg', 'Imagick')->cache(); 

如果不指定驅動程序使用Kohana可以回退到Image::$default_driver

OLD ANSWER

您沒有所需的類

// APPPATH./classes/Image/Imagick.php 

class Image_Imagick extends Kohana_Image_Imagick {} // empty class 

那麼你應該能夠調用Image_Imagick::cache

如果你想方法可從Image

// APPPATH./classes/Image.php 

class Image extends Kohana_Image_Imagick {} // empty class 

現在您可以撥打Image::cache

+0

您好,非常感謝您的回覆。是的,我已閱讀文檔。是的,我將Image :: $ default_driver設置爲「imagick」。我創建了所需的類並且不起作用。 –