【问题标题】:Extends Image class in Kohana 3.3在 Kohana 3.3 中扩展 Image 类
【发布时间】:2014-02-13 16:54:23
【问题描述】:

我需要使用具有相同名称 (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/Image/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 类可以正常工作。

希望大家能帮帮我,谢谢。

【问题讨论】:

    标签: php image module kohana


    【解决方案1】:

    Have you read the documentation?

    您必须:

    设置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

    【讨论】:

    • 您好,谢谢您的回复。是的,我已阅读文档。是的,我将 Image::$default_driver 设置为“imagick”。我创建了所需的类,但也不起作用。
    猜你喜欢
    • 2013-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-21
    • 1970-01-01
    相关资源
    最近更新 更多