【发布时间】:2016-08-03 09:58:53
【问题描述】:
我对自动加载和命名空间非常陌生,并尝试将命名空间添加到我的 MVC 项目中。
所以在我的作曲家中我添加了:
"autoload": {
"psr-0": {
"prj\\app\\": "app/",
"prj\\app\\controller\\": "app/controller/",
"prj\\app\\classes\\": "app/classes/"
}
}
然后更新 composer 并运行 autodump 命令。
然后我回到我的应用程序尝试使用这些命名空间之一,但我只得到以下信息:
use \app\classes\engine; // use statement I tried
Fatal error: Uncaught Error: Class 'app\classes\engine' not found in C:\inetpub\wwwroot\web\index.php:87 Stack trace: #0 {main} thrown in C:\inetpub\wwwroot\web\index.php on line 87
我不确定为什么它无法使用命名空间找到类,如果它可能有用的话,这是我的整个文件夹结构:
PRJ
├───app
│ ├───classes
│ └───controller
├───web
│ └───index.php
├───vendor
│ ├───bin
│ ├───composer
│ ├───...
└───view
├───bootstrap
└───default
/app 存储控制器和类等逻辑。
/web 是网络根目录 - index.php 是访问者看到的页面,所有内容都通过这里处理。
/vendor 是存放我的依赖项的 composer 目录。
【问题讨论】:
标签: php namespaces composer-php autoload psr-0