[英]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.