Я пишу плагин и пытаюсь использовать composer для автоматической загрузки моих классов, но я не могу заставить его работать.Я знаю, что есть много вопросов по этой теме, но мне кажется, что ничего не работает.
структура каталогов:
имя плагина
- classes
- vendor
- plugin-name.php
- composer.json
- composer.lock
composer.json файл:
{
"require": {
"katzgrau/klogger": "dev-master"
},
"autoload": {
"psr-4": { "Foo\\": "classes" }
}
}
plugin-name.php file:
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'));
Class_Name.php file:
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_Name' не найден
Я подумал, может быть, это как-то связано с тем, что я пытаюсь инициализировать "Class_Name" в перехватчике plugins_loaded, но почему это так важно?если мне потребуется vendor / autoload.php гораздо раньше?