Невозможно создать новый объект gnupg в контроллере Symfony

Я конвертирую проект с чистого PHP на Symfony, и у меня проблемы с работой с gnupg в Symfony.

Моя проблема заключается в следующем: я без проблем настроил gnupg в соответствии с документацией PHP, перезапустил свой веб-сервер, а также перезапустил файл php-fpm. Я только что создал один файл php, чтобы проверить, все ли правильно настроено и все ли работает нормально с чистым php. Проблема возникает, когда я пытаюсь добавить код в свой контроллер Symfony. Когда я делаю следующее:

putenv('GNUPGHOME=/home/kevingrab/.gnupg');
$gpg = '/usr/bin/gpg';
$gpg = new gnupg();

В логах получаю следующую ошибку:

request.CRITICAL: Uncaught PHP Exception Symfony\Component\Debug\Exception\ClassNotFoundException: "Attempted to load class "gnupg" from namespace "AppBundle\Controller". Did you forget a "use" statement for another namespace?" at /var/www/project/src/AppBundle/Controller/DefaultController.php line 147 {"exception":"[object] (Symfony\\Component\\Debug\\Exception\\ClassNotFoundException(code: 0): Attempted to load class \"gnupg\" from namespace \"AppBundle\\Controller\".\nDid you forget a \"use\" statement for another namespace? at /var/www/project/src/AppBundle/Controller/DefaultController.php:147)"} []

И я не знаю, что я могу сделать, чтобы исправить это, я пытался найти ответ в Интернете, но я не видел ни одного сообщения об этой проблеме с Symfony. Любая помощь будет оценена по достоинству.


person John Graham    schedule 14.08.2017    source источник


Ответы (1)


вы можете исправить свою проблему, добавив \ к коду, который создает экземпляр объекта gnupg.

So

$gpg = new \gnupg();

Чтобы узнать, почему это так, обратитесь к глобальному пространству.

person Vamsi Krishna B    schedule 14.08.2017
comment
Спасибо за ваш ответ, я добавил \, как вы сказали мне, но я все еще получаю ту же ошибку ... Ваш ответ имеет смысл, но я получаю ту же ошибку - person John Graham; 14.08.2017
comment
может он не установлен? sudo pecl gnupg - person Vamsi Krishna B; 15.08.2017
comment
Да, он установлен и работает с простым php-скриптом, но не внутри контроллера Symfony. - person John Graham; 21.08.2017
comment
В CentOS 7, прежде чем я смог установить с помощью pecl, я сделал: sudo yum --enablerepo=remi,remi-php72 install php-pear php-devel, а затем sudo pecl install gnupg, а затем отредактировал свой php.ini, чтобы он содержал extension=gnupg.so, и перезапустил apache2 с sudo systemctl restart httpd - person site; 26.10.2019