php - 通过作曲家自动加载类不起作用
问题描述
我有一个项目结构:
在 index.php 中,我创建了 2 个新对象:
use App\Controllers\Test;
use Xuborx\Cms\App;
new Test();
new App();
我的Test.php
<?php
namespace App\Controllers;
class Test
{
}
我的应用程序.php
<?php
namespace Xuborx\Cms;
class App {
}
我在 composer.json 中的自动加载对象:
"autoload": {
"psr-4": {
"App\\Controllers\\": "app/controllers",
"Xuborx\\Cms\\": "vendor/xuborx/cms"
}
}
在 index.php 中成功创建对象测试,但是当我创建新应用程序时,出现错误:
致命错误:未捕获的错误:在 /home/denis/Coding/xuborx-cms/public/index.php:8 中找不到类“Xuborx\Cms\App”堆栈跟踪:在 /home/denis/ 中抛出 #0 {main}第 8 行的编码/xuborx-cms/public/index.php
另外,当我运行composer dump-autoload -o时,出现错误:
位于 ./vendor/xuborx/cms/core/App.php 的 Xuborx\Cms\App 类不符合 psr-4 自动加载标准。跳过。
我想,我不正确在 composer.json 中使用自动加载,但我不明白我的错误。请<和我谈谈。
解决方案
App.php 在 /core 目录中:
autoload": {
"psr-4": {
"App\\Controllers\\": "app/controllers",
"Xuborx\\Cms\\": "vendor/xuborx/cms/core"
}
}
推荐阅读
- firebase - 如何将初始值传递给 Timer 小部件 - Flutter
- google-cloud-platform - Google Cloud 硬配额限制
- arduino - 我们可以在 STM32 上使用 arduino 库(例如电机屏蔽库)吗?
- python - Python中是否有替代“异常原因”的用例?
- python - 为什么我不能像 [...].append(...) 那样使用 append() 方法?
- python - Ansible:使用原始字典中的重复值构建反向字典
- elasticsearch - Amazon CloudWatch SubscriptionFilter 弹性搜索 Terraform 支持
- open-policy-agent - 将列表中以 x 开头的每个项目放入一个新列表中 - Rego
- c# - 使用 EF Core 将数据从 Excel 移动到 SQL Server 数据库的效率建议
- excel - 搜索特定文本的行并将其复制到单元格