Php 试图加载类“;Imagick“;从symfony3中的全局命名空间
因此,我目前正在为一个symfony项目使用“Imagick”扩展,但我得到以下错误: ClassNotFoundException:“试图从全局命名空间加载类“Imagick”。是否忘记了“use”语句?” 奇怪的是,它在所有原生php脚本中都运行良好,但在symfony项目中却不工作 我做了一些研究,发现还需要为CLI启用imagick。。但我没有找到任何方法来解释如何制作它 因此,我通过以下代码片段验证了Imagick的安装:Php 试图加载类“;Imagick“;从symfony3中的全局命名空间,php,symfony,imagick,Php,Symfony,Imagick,因此,我目前正在为一个symfony项目使用“Imagick”扩展,但我得到以下错误: ClassNotFoundException:“试图从全局命名空间加载类“Imagick”。是否忘记了“use”语句?” 奇怪的是,它在所有原生php脚本中都运行良好,但在symfony项目中却不工作 我做了一些研究,发现还需要为CLI启用imagick。。但我没有找到任何方法来解释如何制作它 因此,我通过以下代码片段验证了Imagick的安装: <?php header('Content-type:
<?php
header('Content-type: image/jpeg');
$image = new imagick("C:/wamp64/www/test/image.jpg");
$image->thumbnailImage(100,0);
echo $image;
符号功能
private function createThumbnail($path, $dest, $width, $height)
{
$im = new \Imagick();
$im->pingImage($path);
$im->readImage($path);
$im->thumbnailImage($width, $height);
$white=new \Imagick();
$white->newImage($width, $height, "white");
$white->compositeImage($im, \Imagick::COMPOSITE_OVER, 0, 0);
$white->setImageFormat('jpg');
$white->writeImage($dest);
$im->destroy();
$white->destroy();
}
环境
PHP版本=>7.1.9
系统=>Windows10
服务器=>Wamp64
Symfony版本=>3.1
编译器= > MVC14(Visual C++ 2015)< /P> 架构=>x64
imagick模块版本=>3.4.3ImageMagick版本=>ImageMagick 6.9.3-7 Q16 x64 2016-03-27我找到了解决方案,我为有相同问题的人给出了答案: 您应该添加以下行
;on Windows:
extension=php_imagick.dll
到C:\wamp64\bin\php\phpx.x.x\php.ini
不到C:\wamp64\bin\apache\apachex.x.x\bin\php.ini
因为第一个php.ini是PHPCLI使用的文件,所以Symfony本地Web服务器也使用该文件
快乐编码 请在命令行run
php-i
上显示使用Imagick类的代码,在前20行的某个地方(其中一些很长,即configure命令),您应该找到正在读取的配置文件的位置,以及其他文件。在这些文件中,您必须启用imagick扩展名,我希望您知道如何操作(通常删除extension=imagick
或php_imagick之类的行前面的;
,请参见,imagick是类的正确名称?在简单的php示例中,您编写了“imagick”全部的lowecase@Jakumi是的,我已经做了你所说的一切,因此imagick扩展在wamp中启用,证据是imagick在所有本机php脚本中都能工作,我尝试按照本教程介绍如何安装和启用imagick扩展:@pabgaran,是的,它是正确的。。据我所知,$im=new\imagick()
类似于使用Imagick;$im=new Imagick();
我已经在SSH服务器上部署了这个项目,它工作正常,但仍然不能在我的windows LocalHost上工作。对我来说,环境太多了:我理解正确了吗…远程(unix)通过web:ok,远程(unix)通过命令行:ok,local(windows)通过web:ok,本地(windows)通过命令行:NOPE。?如果是这样,您是否遵循了链接中关于“万一控制台出错”的最后一条建议,并且您是否也从本地cli调用了“php-i”检查配置文件?因为据我所知,它可能既不是php也不是服务器本身,而是一些配置错误,或者文件位于错误的位置,或者symfony之外的东西
private function createThumbnail($path, $dest, $width, $height)
{
$im = new \Imagick();
$im->pingImage($path);
$im->readImage($path);
$im->thumbnailImage($width, $height);
$white=new \Imagick();
$white->newImage($width, $height, "white");
$white->compositeImage($im, \Imagick::COMPOSITE_OVER, 0, 0);
$white->setImageFormat('jpg');
$white->writeImage($dest);
$im->destroy();
$white->destroy();
}
;on Windows:
extension=php_imagick.dll
;on UNIX:
extension = imagick.so