【问题标题】:Unable to create new gnupg object in Symfony Controller无法在 Symfony 控制器中创建新的 gnupg 对象
【发布时间】:2017-08-14 02:38:48
【问题描述】:

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

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

【问题讨论】:

    标签: php symfony gnupg pgp gpg-signature


    【解决方案1】:

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

    所以

    $gpg = new \gnupg();
    

    要知道为什么会这样,请参考Global space.

    【讨论】:

    • 感谢您的回复,我添加了您告诉我的“\”,但我得到了同样的错误......您的回复很有意义,但我得到了同样的错误
    • 可能是它没有安装? sudo pecl gnupg
    • 是的,它已安装并且使用简单的 php 脚本工作,但不在 Symfony 的控制器中
    • 在可以使用 pecl 安装之前,在 CentOS 7 上,我这样做了:sudo yum --enablerepo=remi,remi-php72 install php-pear php-devel,然后是 sudo pecl install gnupg,然后编辑我的 php.ini 以包含 extension=gnupg.so 并使用 sudo systemctl restart httpd 重新启动 apache2跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-21
    • 2019-07-11
    • 1970-01-01
    • 2017-05-13
    • 1970-01-01
    • 2014-06-03
    • 2016-12-29
    相关资源
    最近更新 更多