我有一个使用SLIM框架的REST api应用。 下面是我的应用程序目录结构
下面是我的控制器目录中的结构
Authcontroller.php在Auth文件夹中。
以下是分配给ActionController和Authcontroller的命名空间
这两个控制器(操作和身份验证)均在容器中定义,如下所示在主应用中
上面的应用程序在我的本地主机上运行良好,但是当我将其上传到我的服务器时,它出现在第58行以上的错误
请在这里帮助我,我快疯了,已经更改了3台托管服务器(共享主机),但仍然存在相同的错误。 请帮助!
答案 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
因此会生成新的自动加载文件。