SLIM错误::服务器上托管SLIM应用时找不到AuthController

时间:2018-09-29 06:08:03

标签: php rest slim shared-hosting slim-3

我有一个使用SLIM框架的REST api应用。 下面是我的应用程序目录结构 enter image description here

下面是我的控制器目录中的结构

enter image description here

Authcontroller.php在Auth文件夹中。

以下是分配给ActionController和Authcontroller的命名空间 enter image description here enter image description here

这两个控制器(操作和身份验证)均在容器中定义,如下所示在主应用中 enter image description here

上面的应用程序在我的本地主机上运行良好,但是当我将其上传到我的服务器时,它出现在第58行以上的错误 enter image description here

请在这里帮助我,我快疯了,已经更改了3台托管服务器(共享主机),但仍然存在相同的错误。 请帮助!

1 个答案:

答案 0 :(得分:3)

如果您的部署服务器主要是Linux,则因为路径区分大小写。

如果您的composer.json包含以下部分

...
"autoload": {
    "psr-4": {
        "App\\": "app"
    },
},
...

Composer PSR-4自动加载期望找到类

\App\Controllers\Auth\AuthController

在文件中

 app\Controllers\Auth\AuthController.php

但找不到它,因为您是

 app\controllers\Auth\AuthController.php

由于您的开发计算机似乎使用的Windows默认情况下不区分大小写,因此

 app\controllers\Auth\AuthController.php

等于

 app\Controllers\Auth\AuthController.php

这就是为什么它可以在您的开发计算机上而不在部署服务器上运行的原因。

因此解决方案是重命名任何目录/文件以匹配其大小写,并确保所有文件都已复制到部署服务器。

更改目录/文件名大小写后,运行

$ composer dump-autoload

因此会生成新的自动加载文件。