Imagick successfull installation but error occurs: Uncaught Error: Class 'imagick' not found

Imagick successfull installation but error occurs: Uncaught Error: Class 'imagick' not found

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

composer require calcinai/php-imagick

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

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

在我的本地机器上一切正常,但在我的网络托管上 returns 未捕获错误:Class 'imagick' 未找到。我是否需要对所有文件执行 require 之类的操作?因为我试图在开头添加以下内容:

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

现在它抛给我这个:未捕获的异常:Imagick::setResolution 未实现

请指教。

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

上一行不是必需的。如评论中所述,Composer 对 class 名称的大小写非常严格,并且不鼓励对 class 名称的大小写进行调整,因为 Composer 在其 class 映射中对其进行了适当的严格自动加载。

$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 的一些实现,其他一些库可能会有所帮助。