【发布时间】:2018-08-13 20:15:55
【问题描述】:
我在本地 Vagrant(在 Windows 上运行)上使用标准 Ubuntu 1604 环境开发了一个 Slim-3 应用程序。
在我的composer.json 中,我插入了autoload 指令:
"autoload": {
"psr-4": {
"btc\\": "src\btc"
}
}
在我的src\btc 文件夹中,我创建了几个类,每个类文件的顶部都有namespace btc 声明。
特别是,我有一个像这样的http.php 文件:
namespace btc;
class Http {
const SUCCESS_WITH_OUTPUT = 200;
const SUCCESS_WITH_NO_OUTPUT = 204;
const SUCCESS_POST_WITH_OUTPUT = 201; //CREATED
const FAIL_AUTH = 401;
const BAD_REQUEST = 400;
const FAIL_OTHERWISE = 403;
}
在我的routes.php 我有这个参考:
$output = ['res' => 'Method not implemented', 'status'=>btc\Http::BAD_REQUEST];
这在我本地的 vagrant 机器上运行良好。
============
现在我克隆了 repo 以部署到我的生产机器上。
-
composer update运行良好。 - 我又跑了一次
composer dumpautoload来创建自动加载文件。 - Slim 应用程序运行正常,因为路线已正确映射。
- 但它没有说
class 'btc/Http' not found错误。
我认为这是由于 btc 命名空间没有自动加载。
我错过了什么吗?
感谢您的帮助。
【问题讨论】: