Php Imagick安装成功,但出现错误:未捕获错误:Class';imagick';找不到
我读过十几篇文章,但没有一篇能提供正确的解决方案。我拥有对服务器的SSH访问权限,我通过composer安装了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
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功能。非常感谢。