【问题标题】:SLIM Error :: AuthController not found when SLIM app hosted on serverSLIM 错误 :: 当 SLIM 应用程序托管在服务器上时找不到 AuthController
【发布时间】:2019-03-05 01:25:51
【问题描述】:

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

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

Authcontroller.php 位于 Auth 文件夹中。

下面是给 ActionController 和 Authcontroller 的命名空间

两个控制器(Action 和 Auth)都在容器中定义如下,在 mainapp 中

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

请在这里帮帮我,我快疯了,已经更改了大约 3 个托管服务器(SHARED-HOSTING),但仍然是同样的错误。 请帮忙!!

【问题讨论】:

  • 请不要包含代码截图或错误信息。相反,您可以将代码或错误消息的文本粘贴到问题中并正确格式化。

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


【解决方案1】:

如果您的部署服务器是 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

于是新的自动加载文件就生成了。

【讨论】:

  • 谢谢@Zamrony,这终于解决了我的问题:)谢谢伙计!!
猜你喜欢
  • 1970-01-01
  • 2015-03-05
  • 1970-01-01
  • 2017-10-28
  • 2018-05-26
  • 2018-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多