gpt4 book ai didi

composer-php - 我的 Composer psr-4 自动加载有什么问题?

转载 作者:行者123 更新时间:2023-12-04 15:45:25 25 4
gpt4 key购买 nike

我正在使用 Slim 和 Twig 创建一个网络应用程序。我使用的库运行良好,我可以毫无问题地轻松调用它们。但是,composer.json autoload psr-4 找不到我自己的类(psr-0 也找不到它们)
这是我的文件系统:

project
|composer.json
|src
|public
| |index.php
|classes
| |Application.php
| |middlewares
| |SecurityMiddleware.php
|templates
|TemplateController.php
|main
|MainController.php

这是我的 composer.json:

{
"authors": [
{
"name": "Jean-Marc ZIMMER",
"email": "################@gmail.com",
"role": "Developer"
}
],
"require": {
"slim/slim": "^3.11",
"slim/extras": "*",
"twig/twig": "^2.5",
"slim/twig-view": "^2.4",
"slim/views": "^0.1.3"
},
"autoload": {
"psr-4": {
"src\\": "src",
"middlewares\\": "src/classes/middlewares",
"classes\\": "src/classes",
"templates\\": "src/templates"
}
}
}

然后src/classes/Application.php:

<?php

namespace classes;

class Application extends \Slim\App {

public function __construct($container = array()) {
parent::__construct($container);
}
}

最后是我的 index.php 文件:

<?php

require '../../vendor/autoload.php';

$app = new \classes\Application([
"settings" => [
"displayErrorDetails" => true
]
]);
$app->run();

当我运行 composer dump-autoload 时,命令输出:

Generated autoload files containing 0 classes

然后以状态码 0 退出。它应该找到 4 个类,对吗?
运行应用程序显示错误:

Fatal error: Uncaught Error: Class 'classes\Application' not found in /opt/lampp/htdocs/project/src/public/index.php:5

我确定我遗漏了一些东西,指示 namespace 或其他东西。谁能帮帮我?

编辑:
我尝试使用 --optimize 或 --classmap-authoritative 选项进行转储自动加载。什么都没改变。
在 composer.json 中的文件夹名称中添加“/”不会改变任何内容。

最佳答案

我从其他来源获得了解决方案。我个人不喜欢它,但它确实有效。
文件系统未更改。

composer.json 自动加载:

"autoload": {
"psr-4": {
"App\\": "src/"
}
}

src/public/index.php:

<?php

require '../../vendor/autoload.php';

$app = new \App\classes\Application([
"settings" => [
"displayErrorDetails" => true
]
]);
$app->run();

src/classes/Application.php:

<?php
namespace App\classes;

class Application extends \Slim\App {

public function __construct($container = array()) {
parent::__construct($container);
}
}

我将从这个功能基础开始工作,看看我是否能得到我想要的结果。如果我这样做,我会编辑这个答案。

关于composer-php - 我的 Composer psr-4 自动加载有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55970585/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com