PHP Класс composer пакет не найден - PullRequest
1 голос
/ 02 мая 2020

Я пишу плагин Wordpress для создания пользовательских блоков Гутенберга. Я использую пакет composer, который называется Carbon Fields. Но когда я пытаюсь использовать пакет, я получаю сообщение об ошибке:

Неустранимая ошибка: необработанная ошибка: класс 'Carbon_Fields \ Block' не найден в / my-path / my-plugin / my-plugin. php в строке 10 .

Странно то, что я могу без проблем использовать классы Container и Field.

Примечание

Я только что включил базовую c структуру файла и код, чтобы вы могли сосредоточиться на важных вещах.

Структура файла

  • my-plugin
    • vendor
      • htmlburger
        • core
          • Block. php
          • Carbon_Fields. php
          • Контейнер. php
          • Поле. php
    • my-plugin. php

Код

my-plugin. php

add_action( 'after_setup_theme', 'carbon_fields_init' );
function carbon_fields_init() {
        require_once plugin_dir_path( __FILE__ ) . 'vendor/autoload.php';
        \Carbon_Fields\Carbon_Fields::boot();
}

use \Carbon_Fields\Block;
use \Carbon_Fields\Filed;

Block::make( __( 'Hero Image' ) )
    ->add_fields( array(
        Field::make( 'text', 'heading', __( 'Block Heading' ) ),
    ) )
    ->set_render_callback( function ( $fields, $attributes, $inner_blocks ) {
        ?>

        <div class="block">
            <div class="block__heading">
                <h1><?php echo esc_html( $fields['heading'] ); ?></h1>
            </div><!-- /.block__heading -->

        <?php
    } );

Блок. php

namespace Carbon_Fields;

class Block extends Container {
    public static function make() {
        return call_user_func_array( array( 'parent', 'make' ), array_merge( array( 'block' ), func_get_args() ) );
    }
}
...