我需要使用具有相同名称(https://github.com/kohana/image)的模块的iMagick扩展类Image,但是,我无法做到。
我想添加一个新方法调用“缓存”。这就是我想要做的事情:
类/ 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已正确安装并使用原生Image类正常工作。
希望你们帮助我,谢谢。
答案 0 :(得分: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