Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Imagick安装成功,但出现错误:未捕获错误:Class';imagick';找不到_Php_Composer Php_Imagick - Fatal编程技术网

Php Imagick安装成功,但出现错误:未捕获错误:Class';imagick';找不到

Php Imagick安装成功,但出现错误:未捕获错误:Class';imagick';找不到,php,composer-php,imagick,Php,Composer Php,Imagick,我读过十几篇文章,但没有一篇能提供正确的解决方案。我拥有对服务器的SSH访问权限,我通过composer安装了imagick,如下所示: composer require calcinai/php-imagick 库已成功安装在本地服务器(开放服务器)和远程服务器上。那么我会: $imagick = new imagick(); $imagick->setResolution(300, 300); 在我的本地机器上一切正常,但在我的web主机上它返回未捕获的错误:找不到类“imagi

我读过十几篇文章,但没有一篇能提供正确的解决方案。我拥有对服务器的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';
现在它向我抛出这样一个问题:未捕获异常:未实现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
的一些实现,其他一些库可能会有所帮助。

Case-
new Imagick()
。(虽然我认为类名是不区分大小写的,但我必须查找它)类名本身是不区分大小写的,但是Composer不允许它们出现在自动加载过程中。非常感谢区分大小写的功能。我试过了,但在添加自动加载之前。关于setResolution:碰巧我的本地机器上的开放服务器已经安装了Imagick作为本机库。这就是为什么它可以在没有任何自动加载的情况下正常工作,并且不关心大小写敏感度,最后还有setResolution功能。非常感谢。