Imagick 安装成功,但发生错误:未捕获错误:找不到类'imagick'



我已经阅读了十几篇文章,但是没有一篇提供了合适的解决方案。我可以SSH访问我的服务器,并通过composer安装imagick,如下所示:

composer require calcinai/php-imagick

库成功安装在我的本地服务器(打开服务器)和远程服务器上。然后我做:

$imagick = new imagick();
$imagick->setResolution(300, 300); 

在我的本地机器上一切正常,但在我的web托管上它返回未捕获的错误:类'imagick'未找到。我需要为所有文件做require吗?因为我试图在开头添加以下内容:

require_once $_SERVER['DOCUMENT_ROOT'].'/vendor/autoload.php';
require_once $_SERVER['DOCUMENT_ROOT'].'/vendor/calcinai/php-imagick/src/Imagick.php';

现在它抛出了这个:Uncaught Exception: Imagick::setResolution未实现

请建议。

require_once $_SERVER['DOCUMENT_ROOT'].'/vendor/calcinai/php-imagick/src/Imagick.php';

上面一行不需要。正如在评论中提到的,Composer对类名的大小写是严格的,不鼓励对类名的大小写进行调整,因为Composer在其类映射中有适当严格的自动加载。

$imagick = new Imagick();

上面一行是正确的初始化方式。就异常而言,他们自己的内部实现将其作为尚未实现的东西抛出。下面是他们的方法体

方法定义:

/**
* @param float $x_resolution
* @param float $y_resolution
* @return bool
*/
public function setResolution($x_resolution, $y_resolution)
{
throw new Exception(sprintf('%s::%s not implemented', __CLASS__, __FUNCTION__));
}

就远程服务器而言,那里的一切都运行得相当好。如果你真的需要setResolution的一些实现,一些其他的库可能会有帮助。

相关内容

最新更新