簡體   English   中英

Imagick 安裝成功但出現錯誤:未捕獲錯誤:Class 'imagick' not found

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

我已經閱讀了十幾篇文章,但沒有一篇提供適當的解決方案。 我有一個 SSH 訪問我的服務器,我通過 composer 安裝了 imagick,如下所示:

composer require calcinai/php-imagick

該庫已成功安裝在我的本地服務器(開放服務器)和遠程服務器上。 然后我這樣做:

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

在我的本地機器上一切正常,但在我的網絡托管上它返回未捕獲的錯誤:未找到 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 在其類映射中對其進行了適當的嚴格自動加載。

$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的一些實現,其他一些庫可能會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM