PHPFixing
  • Privacy Policy
  • TOS
  • Ask Question
  • Contact Us
  • Home
  • PHP
  • Programming
  • SQL Injection
  • Web3.0

Monday, January 10, 2022

[FIXED] Attempted to load class "Imagick" from the global namespace in symfony3

 January 10, 2022     imagick, php, symfony     No comments   

Issue

So I'm currently using "Imagick" extension for a symfony project, but I get this error:

ClassNotFoundException: "Attempted to load class "Imagick" from the global namespace. Did you forget a "use" statement?"

Strangely, it's working fine in all native php script, but not working in symfony project!

I did some research and I found that I need to enable imagick for CLI also .. but I didn't find any method explain how to make it.

So, I verified Imagick installation by this code snippet:

<?php

header('Content-type: image/jpeg');

$image = new imagick("C:/wamp64/www/test/image.jpg");
$image->thumbnailImage(100,0);

echo $image;

and I can see the image loaded correctly.

Also, when I run this script from the browser:

<?php

if (extension_loaded('imagick')){
    echo 'imagick is installed';
} else {
    echo 'imagick not installed';
}

?>

I get :

imagick is installed

But when I execute this file from command-line interface, I get :

imagick not installed

In the Symfony project I get this error log:

Uncaught PHP Exception Symfony\Component\Debug\Exception\ClassNotFoundException: "Attempted to load class "Imagick" from the global namespace. Did you forget a "use" statement?" 

Symfony function

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();
    }

Environment

PHP Version => 7.1.9

System => Windows 10

Server => Wamp64

Symfony version => 3.1

Compiler => MSVC14 (Visual C++ 2015)

Architecture => x64

imagick module version => 3.4.3

ImageMagick version => ImageMagick 6.9.3-7 Q16 x64 2016-03-27


Solution

I found the solution, I put the answer for someone who have the same issue:

you should add the following lines

;on Windows:
extension=php_imagick.dll
;on UNIX:
extension = imagick.so

to C:\wamp64\bin\php\phpx.x.x\php.ini

not to C:\wamp64\bin\apache\apachex.x.x\bin\php.ini

because the first php.ini is the file used by PHP CLI, so by the Symfony Local Web Server.

Happy coding!



Answered By - Mohamed LAMRABET
  • Share This:  
  •  Facebook
  •  Twitter
  •  Stumble
  •  Digg
Newer Post Older Post Home

0 Comments:

Post a Comment

Note: Only a member of this blog may post a comment.

Total Pageviews

Featured Post

Why Learn PHP Programming

Why Learn PHP Programming A widely-used open source scripting language PHP is one of the most popular programming languages in the world. It...

Subscribe To

Posts
Atom
Posts
Comments
Atom
Comments

Copyright © PHPFixing