【问题标题】:Composer PSR-4 autoloading completely ignoredComposer PSR-4 自动加载完全被忽略
【发布时间】:2019-07-04 23:47:43
【问题描述】:

我有 composer.json 文件:

{
    "name": "marko/art-empire",
    "description": "Social network",
    "type": "project",
    "authors": [
        {
            "name": "Marko Ilic",
            "email": "markowebdeveloper@gmail.com"
        }
    ],
    "require": {},
    "autoload": {
      "psr-4": {
        "Songs\\": "songs/"
      }
    }
}

autoload_psr4.php 文件:

$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);

return array(
    'Songs\\' => array($baseDir . '/songs'),
);

歌曲文件夹(根目录下)中的RandomSong.php文件:

namespace Song;

class RandomSong
{
    public function songName()
    {
        return 'Random Song';
    }
}

test.php 文件:

require 'vendor/autoload.php';

use Songs\RandomSong;

$randomSong = new RandomSong();
echo $randomSong->songName();

如您所见,我正在尝试自动加载 RandomSong 类,但我不断收到:

Fatal error: Uncaught Error: Class 'Songs\RandomSong' not found in test.php

请帮忙,谢谢。

【问题讨论】:

    标签: php composer-php autoloader psr-4


    【解决方案1】:

    您的RandomSong 使用Song 命名空间,而您的加载程序用于Songs 命名空间。

    【讨论】:

    【解决方案2】:

    您的命名空间称为Song,但您将其称为Songs

    【讨论】:

    • 哇,我怎么没看到??谢谢!
    猜你喜欢
    • 2014-07-25
    • 2015-04-20
    • 2018-07-25
    • 2014-08-12
    • 1970-01-01
    • 2014-11-01
    • 2014-03-24
    • 2018-06-01
    • 2017-02-01
    相关资源
    最近更新 更多