繁体   English   中英

扩展Kohana 3.3中的Image类

[英]Extends Image class in Kohana 3.3

我需要使用具有相同名称( https://github.com/kohana/image )的模块的iMagick扩展Image类,但是,我无法做到这一点。

我想添加一个新的方法调用“缓存”。 这就是我想要做的:

classes / Image.php

abstract class Image extends Kohana_Image {}

classes / Kohana / Image.php

abstract class Kohana_Image {

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

    abstract protected function _do_cache();
}

类/科哈纳/图像/图像

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类正常运行。

希望你们对此有所帮助,谢谢。

您阅读过文档吗?

您必须:

设置Image::$default_driver = 'Imagick';

或称它为factory指定要使用的驱动程序:

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

如果未指定驱动程序以使用Kohana,则会退回到Image::$default_driver设置的任何值

老答案

您没有必修课

// 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM