Класс 'Imagine\\Imagick\\Imagine' не найден Symfony 2.1

Я хочу интегрировать LiipImageBundle в свой проект Symfony 2.1.

Я установил пакет и пакет imagine/Imagine v.0.4.0 через композитор. Кажется, все работает нормально, за исключением того, что измененные изображения не сохраняются.

В error.log указано:

PHP Fatal error: Class 'Imagine\\Imagick\\Imagine' not found in /var/www/app/cache/prod/appProdProjectContainer.php on line 365

Эта строка в appProdProjectContainer.php гласит:

protected function getLiipImagineService()
{
    return $this->services['liip_imagine'] = new \Imagine\Imagick\Imagine();
}

Я понятия не имею, правильно это или нет. Ребята, вы знаете, почему PHP не может найти класс?


person Johannes Klauß    schedule 21.01.2013    source источник
comment
Вы установили imagick? единственное, о чем я могу думать, это то, что Imagine\Imagick\Imagine выдает ошибку, если imagick не установлен, поэтому автозагрузчик считает, что не может загрузить Imagine\Imagick\Imagine.   -  person Gintro    schedule 21.01.2013
comment
Да, я сделал. phpinfo() указывает, что он активен и использует версию модуля 3.1.0RC2.   -  person Johannes Klauß    schedule 21.01.2013
comment
Кстати: я только что удалил imagick, и если это так, Symfony выдаст ошибку в самом классе Imagine. Так что класс действительно не найден, но он есть.   -  person Johannes Klauß    schedule 21.01.2013
comment
Я переключился на gd вместо imagemagick, и это работает.   -  person Johannes Klauß    schedule 21.01.2013


Ответы (1)


Вы добавили Imagine в автозагрузку. Если вы этого не сделали, вы можете сделать так:

  1. Откройте vendor/composer/autoload_namespaces.php.
  2. Добавлять

    'Imagine' => $vendorDir .'/imagine/Imagine/lib/',
    'Liip\\ImagineBundle' => $vendorDir . '/liip/imagine-bundle/',
    
person sonam    schedule 22.01.2013
comment
Вы не должны изменять содержимое vendor/composer/autoload_namespaces.php, потому что папка поставщика обычно не находится в SCM, и этот файл может быть автоматически повторно сгенерирован. - person meze; 22.01.2013
comment
Нигде. Запустите php composer.phar dumpautoload (конечно, вы должны использовать композитор для установки Imagine), и он должен изменить все, что нужно. - person meze; 22.01.2013
comment
композитор также повторно генерирует этот файл при использовании команды update или install. - person Johannes Klauß; 23.01.2013