Ошибка пространства имен Symfony 2 только в продакшене («Попытка загрузить класс…»)

Я работаю на веб-сайте Symfony 2, и у меня проблема только в производстве (кеш чист).

Я использую API-интерфейс Payplug для PHP: я поместил файлы в папку поставщика, я использую пространство имен для классов, которые я использую, и все в порядке в моей локальной среде разработки.

Попав на прод-сервер, я получаю ошибку:

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

Я не понимаю, почему возникает ошибка пространства имен только на prod-сервере ...

КОНТРОЛЛЕР:

<?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), но не работает на сервере prod ...

Любая идея будет оценена,

С уважением

РЕДАКТИРОВАТЬФайлы, установленные через композитор

Я полагаю, вы могли бы попробовать "composer dumpautoload" на своем производственном сервере, но, судя по тому, что вы описали, это, вероятно, не поможет.

Cerad 13.06.2018 16:07

к сожалению, у меня нет доступа по ssh, только передача по ftp ... какой файл можно было изменить?

singe batteur 13.06.2018 16:12

Когда вы выполняли перенос, вы перенесли весь каталог поставщиков или только файлы PayPlug? Вы должны убедиться, что все, что написано в разделе vendor / composer, синхронизировано между производством и разработкой.

Cerad 13.06.2018 16:18

Я нажал только на плагин PayPlug, и я вижу разные размеры файлов в разделе vendor / composer ... вы могли решить мою проблему!

singe batteur 13.06.2018 16:22

@cerad Хорошая работа, мой поставщик / композитор не синхронизировался с разработчиком. Спасибо

singe batteur 13.06.2018 16:24
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
5
417
1

Ответы 1

Я использовал FTP и перенес только каталог vendor\payplug на удаленный сервер; в результате vendor\composer не синхронизировался между локальным и удаленным сервером. перенос локального vendor\composer решил проблему

Спасибо @cerad

Другие вопросы по теме