【发布时间】:2015-04-07 13:42:03
【问题描述】:
我已经将 Symfony 应用程序部署到 one.com 服务器。我编写了一个邮件服务,通过 SwiftMailer 发送我的电子邮件。
现在,由于 one.com 不允许使用 phar 扩展,因此无法通过 ssh 更新作曲家。所以我用
在本地生成了类图composer update -o
每当我尝试获取邮件服务时,应用程序都会抛出错误:
致命错误:类 'Stocksolutions\ShopBundle\DependencyInjection\Mail' 未在 /customers/4/b/b/stocksolutions.be/httpd.www/releases/20150204201140/app/cache/dev/appDevDebugProjectContainer.php 3602行
我已经搜索了composer classmap,没有找到的类在里面:
'StockSolutions\\ShopBundle\\DependencyInjection\\Mail' => $baseDir . '/src/StockSolutions/ShopBundle/DependencyInjection/Mail.php'
此外,我可以在容器中获取其他服务,例如那些来自 FOSUserBundle,但获取我的自定义服务会引发错误。另外,我在本地测试时没有收到这些错误..
有什么想法吗?
【问题讨论】:
-
你不应该在生产服务器上更新,因为这会拉取你没有测试过的新版本。运行
composer install并将composer.lock文件提交并部署到您的项目中。您的部署可能使用 SSH 从本地计算机复制到远程计算机,并安装了所有依赖项和自动加载。如果它在本地工作,它应该在远程工作。 -
当我不生成classmap时它不起作用。然后我在主页上得到这个
Class not found-error(使用不同的类)。也许值得知道的是该应用程序位于子文件夹中并通过 htaccess 文件引用。再说一次,类映射中类的路径是正确的并且文件就位。所以我不能真正换行我的头在这个.. -
您是否在生成类映射后尝试清除缓存?这将更新
appDevDebugProjectContainer.php,也许你的问题会消失。 -
是的,我有,这并没有改变任何东西。
-
您不必使用
composer作为 phar,您可以签出源代码并以这种方式使用它,可以将其安装在某处或直接包含在您的项目中...
标签: php symfony composer-php