Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.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“;从symfony3中的全局命名空间_Php_Symfony_Imagick - Fatal编程技术网

Php 试图加载类“;Imagick“;从symfony3中的全局命名空间

Php 试图加载类“;Imagick“;从symfony3中的全局命名空间,php,symfony,imagick,Php,Symfony,Imagick,因此,我目前正在为一个symfony项目使用“Imagick”扩展,但我得到以下错误: ClassNotFoundException:“试图从全局命名空间加载类“Imagick”。是否忘记了“use”语句?” 奇怪的是,它在所有原生php脚本中都运行良好,但在symfony项目中却不工作 我做了一些研究,发现还需要为CLI启用imagick。。但我没有找到任何方法来解释如何制作它 因此,我通过以下代码片段验证了Imagick的安装: <?php header('Content-type:

因此,我目前正在为一个symfony项目使用“Imagick”扩展,但我得到以下错误:

ClassNotFoundException:“试图从全局命名空间加载类“Imagick”。是否忘记了“use”语句?”

奇怪的是,它在所有原生php脚本中都运行良好,但在symfony项目中却不工作

我做了一些研究,发现还需要为CLI启用imagick。。但我没有找到任何方法来解释如何制作它

因此,我通过以下代码片段验证了Imagick的安装:

<?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.3


ImageMagick版本=>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