我的Laravel 4项目仅在生产和测试服务器上出现以下错误。在我的本地机器上一切正常:
{"error":{"type":"Symfony\\Component\\Debug\\Exception\\FatalErrorException","message":"Class 'Intercom\\IntercomBasicAuthClient' not found","file":"\/www\/htdocs\/laravel\/app\/ACME\/Services\/IntercomService.php","line":26}}
我已经尝试了一切!我甚至删除了composer.lock文件和整个供应商目录,并通过composer install进行了全新安装。什么都没有帮助。
我跑了php artisan clear-compiled
,php artisan dump-autoload
和php artisan optimize
......没有任何帮助:(
该课程位于正确的位置,并且在我的本地计算机上完美运行。 在IntercomService.php中也很好地引用了类,并使用了如下的use语句:
use Intercom\IntercomBasicAuthClient;
这是composer.json:
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"repositories": [
{
"type": "vcs",
"url": "https://github.com/intercom/intercom-php"
}
],
"require": {
"laravel/framework": "4.2.*",
"intercom/intercom-api-client": "dev-master"
},
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php"
],
"psr-0": {
"ACME": "app"
}
},
"scripts": {
"post-install-cmd": [
"php artisan optimize"
],
"post-update-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-create-project-cmd": [
"php artisan key:generate"
]
},
"config": {
"preferred-install": "dist"
},
"minimum-stability": "stable"
}
答案 0 :(得分:1)
我找到了解决方案!问题出在Intercom PHP Package中。在包的src /文件夹中,他们用小写字母写了对讲命名空间的文件夹,如下所示:
src/intercom/...
由于intercom
与命名空间Intercom
不匹配,所以它没有用!
然而,在我的本地Mac上确实有用,因为我觉得Mac不区分大小写并且不关心?!
我一直把头发拉过来,希望这有助于其他人解决这个问题...
确保您的命名空间与其所在的文件夹大小写匹配。