手动修改了composer.json中的命名空间导致报错

最开始我是执行 composer init 创建的一个新项目,过程中会让你设置一些配置。

生成后的 composer.json 是下面这样的:

{
    "name": "junwind/hide-and-seek",
    "description": "基于swoole的捉迷藏小游戏",
    "type": "project",
    "require": {
        "php": ">=7.4.0"
    },
    "license": "MIT",
    "autoload": {
        "psr-4": {
            "Junwind\\HideAndSeek\\": "app/"
        }
    },
    "authors": [
        {
            "name": "junwind"
        }
    ],
    "minimum-stability": "dev"
}

我们主要看这一段:

"psr-4": {
	"Junwind\\HideAndSeek\\": "app/"
}

这里的意思是,我们项目中的app目录下的命名空间就是:

namespace Junwind\HideAndSeek;

但是我想换成这样:

namespace App;  // 对于app目录的命名空间

于是我直接手动修改了composer.json :

"psr-4": {
	"App\\": "app"
}

但是报错了:

Fatal error: Uncaught Error: Class 'App\Manager\Game' not found

网上搜索了一下,我们需要执行一下 composer dump-autoload 重新生成一下,执行后就不报错了。

我们来看下改完后app下的命名空间:

假如我现在目录结构是这样的

app
    Manager
        Game.php
    Model
        Player.php

那么 Player.php 这个类文件中的命名空间是:

<?php
namespace App\Model;

class Player{

}

如果我们的 Game.php 需要调用 Player.php 中的方法:

<?php
namespace App\Manager;

use App\Model\Player;

class Game {
    public function __construct() {
        $player = new Player();
    }
}

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇