gpt4 book ai didi

php - Composer psr-4 自动加载问题

转载 作者:行者123 更新时间:2023-12-03 18:22:15 34 4
gpt4 key购买 nike

当我使用 psr-4 自动加载时,我在使用 Composer 自动加载时遇到问题,它不起作用并给我错误。

我试过:

$ composer dump-autoload

还有很多其他的东西,但没有它就行不通
require one;

错误:
You are now a master builder, that knows how to autoload with a 
classmap!
Fatal error: Uncaught Error: Class 'VegithemesLibraryGreeting' not
found in /home/vaclav/Server/vssk/VSSK/project/aldemo/index.php:10
Stack trace: #0 {main} thrown in
/home/vaclav/Server/vssk/VSSK/project/aldemo/index.php on line 10

Composer .json:
{
"autoload": {
"files": ["mylibrary/functions.php"],

"classmap": [
"classmap"
],

"psr-4": {
"one\\": "src/"
}
}
}

greeting.php(带有要加载的类的文件):
<?php
namespace one;

Class Greeting
{
public function hi()
{
return "We got you covered";
}
}

index.php 文件:
<?php

require 'vendor/autoload.php';

echo lego();

$cm = new Cmautoload;
echo $cm->classmap();

$vt = new oneGreeting;

echo $vt->hi();

最佳答案

将类名的第一个字母大写通常是一种很好的做法。它还遵守PSR-1的规则.
将您的 composer.json 文件更改为如下所示:

{
"autoload": {
"files": [
"mylibrary/functions.php"
],

"classmap": [
"classmap"
],

"psr-4": {
"One\\": "src/"
}
}
}
现在,在您的索引文件中。我们将导入自动加载器。要做到这一点,只需要它: require 'vendor/autoload.php';现在您已经包含了自动加载器,进入每个类并设置命名空间。
您的 src/ 中的类(class)== namespace One;查看您的类(class) src/并确保它们都是命名空间的。这意味着它们都应该在顶部有以下代码行: namespace One;如前所述,将您的文件名更新为 Foo.php和类名 class Foo坚持PSR。 (这不是必需的,但强烈推荐和标准程序。)
要使用您的类(class)之一,您会说 use One\Greeting;
$greeting = new Greeting();
echo $greeting->hi(); //"We got you covered"

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

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