【问题标题】:Symfony 2 namespace error only in production ("Attempted to load class...)Symfony 2 命名空间错误仅在生产中(“尝试加载类...)
【发布时间】:2018-11-23 03:22:03
【问题描述】:

我正在开发一个 Symfony 2 网站,并且仅在生产中遇到问题(缓存已清除)。

我正在使用 Payplug php api:我已将文件放在供应商文件夹中,我为我使用的类使用命名空间,并且在我的本地开发环境中一切正常。

prod 服务器 上,我收到错误:

"Attempted to load class "Payplug" from namespace "Payplug". Did you forget a "use" statement for another namespace?"

我不明白为什么它只在产品服务器上出现命名空间错误...

控制器:

<?php

    namespace KpmBundle\Controller;

    use KpmBundle\Entity\Marche;
    use KpmBundle\Entity\Marcheur;
    use KpmBundle\Entity\Commande;
    use Symfony\Bundle\FrameworkBundle\Controller\Controller;
    use Symfony\Component\HttpFoundation\Request;
    use Payplug\Payplug as Payplug;
    use Payplug\Payment as Payment;

    class MarcheController extends Controller
    {
        //code

        Payplug::setSecretKey(...);

        //more code
    }

<?php
    namespace Payplug;

    /**
     * The Payment DAO simplifies the access to most useful methods
     **/
    class Payment
    {

我真的很想知道为什么在我的本地开发服务器( app_dev.php 和 app.php )上一切正常,但在生产服务器上却出错了......

任何想法将不胜感激,

问候

编辑 通过 composer 安装的文件

【问题讨论】:

  • 我想您可以在生产服务器上尝试“composer dumpautoload”,但根据您的描述,它可能无济于事。
  • 不幸的是我没有 ssh 访问权限,只有 ftp 传输...可以修改什么文件?
  • 当您进行传输时,您是传输整个供应商目录还是仅传输付费插件?您需要确保 vendor/composer 下的所有内容在生产和开发之间保持同步。
  • 我单独推送了payplug的东西,我看到vendor/composer下的文件大小不同......你可能已经解决了我的问题!
  • @cerad 干得好,我的供应商/作曲家没有与开发者同步。谢谢

标签: php symfony namespaces psr-4


【解决方案1】:

我使用FTP,将vendor\payplug目录单独传输到远程服务器;结果vendor\composer 没有在本地和远程服务器之间同步。 转移本地vendor\composer解决问题

感谢@cerad

【讨论】:

    猜你喜欢
    • 2020-01-02
    • 2020-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 2015-03-29
    相关资源
    最近更新 更多