Php 无法在Symfony控制器中创建新的gnupg对象

Php 无法在Symfony控制器中创建新的gnupg对象,php,symfony,gnupg,pgp,gpg-signature,Php,Symfony,Gnupg,Pgp,Gpg Signature,我正在将一个项目从纯PHP转换为Symfony,在Symfony中使用gnupg时遇到问题 我的问题如下:我按照PHP的文档配置了gnupg,没有任何问题,重新启动了Web服务器,还重新启动了PHP fpm。我只是创建了一个php文件来检查所有的配置是否正确,以及是否可以在纯php中正常工作。当我尝试将代码添加到Symfony的控制器时,问题就出现了。当我执行以下操作时: putenv('GNUPGHOME=/home/kevingrab/.gnupg'); $gpg = '/usr/bin/g

我正在将一个项目从纯PHP转换为Symfony,在Symfony中使用gnupg时遇到问题

我的问题如下:我按照PHP的文档配置了gnupg,没有任何问题,重新启动了Web服务器,还重新启动了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这个问题的帖子。任何帮助都将不胜感激。

您可以通过在实例化gnupg对象的代码前面加上
\
来解决您的问题

所以


要知道为什么会出现这种情况,请参阅

谢谢您的回复,我按照您的说明添加了“\”,但我仍然收到相同的错误。。。你的回答有道理,但我得到了同样的错误可能是它没有安装?sudo pecl gnupgYeah,它已经安装,并且正在使用一个简单的php脚本工作,但在我可以使用pecl安装之前,它不在Symfony的controllerOn CentOS 7中,我这样做了:
sudo yum--enablerepo=remi,remi-php72安装php pear php devel
然后
sudo pecl安装gnupg
,然后编辑my php.ini以包含
extension=gnupg.so
并使用
sudo systemctl restart httpd重新启动apache2
$gpg = new \gnupg();