php - 作曲家 - 找不到类
问题描述
我仍然无法让作曲家工作。当不使用作曲家自动加载时,我可以 require_once 类文件并实例化一个对象。但是,当尝试使用自动加载时,我收到此错误:
PHP Fatal error: Uncaught Error: Class 'MyCompany\User' not found in /var/www/html/portal/login.php:7
Stack trace:
#0 {main}
thrown in /var/www/html/portal/login.php on line 7
login.php 看起来像这样:
<?php
require_once __DIR__ . "/vendor/autoload.php";
use MyCompany\User;
$user = new User();
当前的 composer.json 看起来像这样:
{
"autoload": {
"psr-4": {
"MyCompany\\User\\": "vendor/mycompany/user/"
}
},
"require": {
"mycompany/user": "dev-master"
},
"repositories": [
{
"packagist.org": false
},
{
"type": "vcs",
"version": "master",
"url": "git@mysrc.example.com:/opt/git/phplib/classes/User.git"
}
]
}
User.php 文件是这样的:
<?php
namespace mycompany;
class User {
function __construct() {
print "composer has done something\n";
}
} //end class User
?>
最后,文件夹结构为:
portal\
composer.json
login.php
vendor\
mycompany\
\user\User.php
\pdo\PDO.php
\page\Page.php
不知何故,命名空间似乎是潜在的问题,但我不确定如何设置它以支持这种结构。最终,即使命名空间是“mycompany”也可以,但类中命名空间的组合、composer.json 自动加载语句和 use 语句都不起作用。我在这里查看了无数问题,似乎没有一个与这个确切的情况相匹配。这是在 linux 系统上,我还尝试了文件和文件夹的大小写的各种组合,尽管有些失败,因为作曲家在某些区域不允许大写。
解决方案
推荐阅读
- javascript - 应用隐藏与其他 css 样式的溢出后,反应组件中表行内的内容未与其他行对齐
- python - Python/Jupyter 在尝试读取 excel 文件时收到 FileNotFoundError 但所述文件位于正确的目录中
- slack - 当我的应用程序正在检索数据时,如何在 Slack 应用程序主页上显示加载圈?
- sql - 如何在 SQL 中忽略零值的行
- api - api/authenticate 在微服务 jhipster 中得到 404 错误
- python - pyTelegramBotAPI 不断崩溃
- flutter - 我无法将数据从 Firestore 获取到我的应用程序中
- r - 在 R 中调整从标签到表格的距离 grid.arrange
- fortran - 调试沉积物动力学的旧 Fortran 代码
- python - 如何根据条件在 Pandas DataFrame 的单元格中的字典中创建新的键值对