我已将 Symfony 应用程序部署到 one.com 服务器。我编写了一个邮件服务,通过 SwiftMailer 发送电子邮件。
现在,由于 one.com 不允许使用 phar 扩展名,因此无法通过 ssh 更新 Composer。所以我在本地生成了类映射
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
我搜索了 Composer 类映射,未找到的类在其中:
'StockSolutions\\ShopBundle\\DependencyInjection\\Mail' => $baseDir . '/src/StockSolutions/ShopBundle/DependencyInjection/Mail.php'
此外,我还可以在容器中获取其他服务,例如这些来自 FOSUserBundle,但获取我的自定义服务会引发错误。另外,我在本地测试时没有收到这些错误..
有什么想法吗?
最佳答案
这是区分大小写的问题。
您的错误:
PSR 的Fatal error: Class 'Stocksolutions\ShopBundle\DependencyInjection\Mail' not found
Stocksolutions
命名空间中的 小写字母 s
强制搜索文件 /src/Stock**s**olutions/ShopBundle/DependencyInjection/Mail .php
,但存在 /src/Stock**S**olutions/ShopBundle/DependencyInjection/Mail.php
。
在本地系统(例如 Windows)上,路径/文件名不区分大小写,不会发生错误。
附注类命名空间中的拼写错误很可能出现在捆绑服务描述 (services.yml
/services.xml
) 中。
关于php - Symfony2 - 未找到 XXX 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28382297/