Php &引用;“未找到类”;尝试为wordpress插件使用composer自动加载时

Php &引用;“未找到类”;尝试为wordpress插件使用composer自动加载时,php,wordpress,composer-php,Php,Wordpress,Composer Php,我正在编写一个插件,并试图使用composer自动加载我的类,但我无法让它工作。我知道在这个话题上有很多问题,但对我来说似乎什么都不管用 目录结构: 插件名 班级 Class_Name.php 卖主 plugin-name.php composer.json 作曲家洛克 composer.json文件: { "require": { "katzgrau/klogger": "dev-master" }, "autoload": {

我正在编写一个插件,并试图使用composer自动加载我的类,但我无法让它工作。我知道在这个话题上有很多问题,但对我来说似乎什么都不管用

目录结构:

  • 插件名

    • 班级
      • Class_Name.php
    • 卖主
    • plugin-name.php
    • composer.json
    • 作曲家洛克
composer.json文件:

{
    "require": {
        "katzgrau/klogger": "dev-master"
    },
    "autoload": {
        "psr-4": { "Foo\\": "classes" }
    }
}
namespace Plugins_Main;

use Foo\Class_Name;

require 'vendor/autoload.php';

class Plugin_Name_Bootstrap{
    public static function run() {
        Class_Name::instance();
    }
 }
add_action('plugins_loaded', array('Plugins_Main\Plugin_Name_Bootstrap', 'run'));
namespace Foo;

class Class_Name{
    protected static $_instance = null;

    public static function instance(){
        if ( self::$_instance === null ) {
            self::$_instance = new self();
        }

        return self::$_instance;
    }
}
plugin name.php文件:

{
    "require": {
        "katzgrau/klogger": "dev-master"
    },
    "autoload": {
        "psr-4": { "Foo\\": "classes" }
    }
}
namespace Plugins_Main;

use Foo\Class_Name;

require 'vendor/autoload.php';

class Plugin_Name_Bootstrap{
    public static function run() {
        Class_Name::instance();
    }
 }
add_action('plugins_loaded', array('Plugins_Main\Plugin_Name_Bootstrap', 'run'));
namespace Foo;

class Class_Name{
    protected static $_instance = null;

    public static function instance(){
        if ( self::$_instance === null ) {
            self::$_instance = new self();
        }

        return self::$_instance;
    }
}
Class_Name.php文件:

{
    "require": {
        "katzgrau/klogger": "dev-master"
    },
    "autoload": {
        "psr-4": { "Foo\\": "classes" }
    }
}
namespace Plugins_Main;

use Foo\Class_Name;

require 'vendor/autoload.php';

class Plugin_Name_Bootstrap{
    public static function run() {
        Class_Name::instance();
    }
 }
add_action('plugins_loaded', array('Plugins_Main\Plugin_Name_Bootstrap', 'run'));
namespace Foo;

class Class_Name{
    protected static $_instance = null;

    public static function instance(){
        if ( self::$_instance === null ) {
            self::$_instance = new self();
        }

        return self::$_instance;
    }
}
根据文档,自动加载应该可以,但我还是有点担心

找不到类“Foo\Class\u Name”


我想这可能与我试图在plugins\u loaded hook中初始化“Class\u Name”这一事实有关,但是如果我更早地要求vendor/autoload.php,那又有什么关系呢


谢谢你的回答。

我认为问题在于你在做
使用Foo\Class\u Name之前<代码>要求“vendor/autoload.php”。在
use
:)之前尝试执行
require
:)仍然不起作用:/Hm可能无法读取自动加载,然后尝试替换
require'vendor/autoload.php'带有
require\uuuu DIR\uuuuu.'/供应商/autoload.php'解决了问题。。谢谢