Я развернул приложение Symfony на сервер one.com. Я написал почтовую службу, которая отправляет мои письма через SwiftMailer.Symfony2 - Класс XXX не найден
Теперь, поскольку one.com не имеет разрешений phar-расширений, композитор не может быть обновлен через ssh. Так что я сгенерировал classmap локально с
composer update -o
Всякий раз, когда я пытаюсь получить услугу почты, приложение выдает ошибку:
Fatal error: Class 'Stocksolutions\ShopBundle\DependencyInjection\Mail' not found in /customers/4/b/b/stocksolutions.be/httpd.www/releases/20150204201140/app/cache/dev/appDevDebugProjectContainer.php on line 3602
Я искал композитора classmap и класс, который не нашел внутри него:
'StockSolutions\\ShopBundle\\DependencyInjection\\Mail' => $baseDir . '/src/StockSolutions/ShopBundle/DependencyInjection/Mail.php'
Кроме того, я могу получить другие услуги в контейнере, fe те из FOSUserBundle, но получение моих пользовательских сервисов вызывает ошибку. Кроме того, я не получаю эти ошибки при локальном тестировании.
Любые идеи?
Вы не должны ОБНОВЛЯТЬ на производственном сервере, потому что это приведет к появлению новых версий, с которыми вы не тестировали. Запустите 'composer install' и зафиксируйте и разверните этот файл' composer.lock' в свой проект. В вашем развертывании может использоваться SSH для копирования с локальной машины на удаленную, с установленными зависимостями и автоматической загрузкой. Если он работает локально, он должен работать удаленно. – Sven
Это не работает, когда я не генерирую classmap. Затем я получаю эту ошибку «Class not found» на домашней странице (с другим классом). Возможно, что-то стоит знать, так это то, что приложение находится во вложенной папке и упоминается через файл htaccess. И снова путь к классу в map-карте правильный и файл на месте. Поэтому я не могу обернуть моя голова вокруг этого .. –
Вы пытались очистить кеш после создания карты классов? Это обновит 'appDevDebugProjectContainer.php', и, возможно, ваша проблема исчезнет. –