Как добавить конфигурацию администрирования Shopware 6 из пакета Symfony?

Я пытаюсь добавить конфигурацию в область администрирования Shopware 6 из пакета Symfony.

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

Конфигурация пакета находится по пути

MyBundle/Resources/config/config.xml

с содержанием из документации

<?xml version = "1.0" encoding = "UTF-8"?>
<config xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation = "https://raw.githubusercontent.com/shopware/platform/trunk/src/Core/System/SystemConfig/Schema/config.xsd">
    <card>
        <title>Basic Configuration</title>
        <title lang = "de-DE">Grundeinstellungen</title>
        <input-field>
            <name>email</name>
            <copyable>true</copyable>
            <label>eMail address</label>
            <label lang = "de-DE">E-Mail Adresse</label>
            <placeholder>[email protected]</placeholder>
            <placeholder lang = "de-DE">[email protected]</placeholder>
            <helpText>Please fill in your personal eMail address</helpText>
            <helpText lang = "de-DE">Bitte trage deine persönliche E-Mail Adresse ein</helpText>
        </input-field>
    </card>
</config>

Даже после удаления кеша и перепрошивки администрирования через консольные команды не появляется.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
1
0
60
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Обновление: в MyBundle.php убедитесь, что вы расширили Shopware\Core\Framework\Bundle вместо Symfony\Component\HttpKernel\Bundle\Bundle. Это должно включить большинство возможностей реальных плагинов, включая анализ config.xml. Исключение, конечно, составляют события жизненного цикла, обычно связанные с плагинами, такие как установка, активация, деинсталляция и т. д. через менеджер расширений.

use Shopware\Core\Framework\Bundle;

class MyBundle extends Bundle
{
    protected $name = 'MyBundle';
}

Это, однако, не заставит ваш пакет отображаться среди обычных плагинов в админке. Но поскольку config.xml анализируется, вы можете получить доступ к странице с отображаемыми полями напрямую через соответствующий URL-адрес:

http://localhost/admin#/sw/extension/config/MyBundle

Так что теоретически вам нужно только расширить администрацию и разместить где-то ссылку на эту страницу, так как ваш бандл не указан как плагин.


Старый ответ (вместо этого имеется в виду использование плагина):

Это выглядит хорошо. Вы называете то, что у вас есть, пакетом Symfony. Хотя плагин является расширением пакета, синтаксический анализ config.xml происходит только с реальными плагинами.

Если он не установлен через композитор, файл должен располагаться по адресу custom/plugins/MyBundle/Resources/config/config.xml или custom/static-plugins/MyBundle/Resources/config/config.xml, а MyBundle.php должен расширяться Shopware\Core\Framework\Plugin. Затем плагин должен быть установлен либо администрацией, либо через cli bin/console plugin:install MyBundle --activate

Спасибо, но уже существующие функции пакета мешают мне превратить это в плагин без особых усилий. Есть ли другой способ принудительно включить config.xml, например, как address.xml пакета System из shopware/core включается в функцию ConfigurationService->fetchConfiguration?

Marcus 23.01.2023 13:46

Обычно вы можете найти поля конфигурации плагина через менеджер расширений в администрации. Даже если бы вы могли заставить систему прочитать ваш config.xml, не было бы возможности получить доступ к полям из коробки. Вы можете сохранять и читать значения конфигурации через службу Shopware\Core\System\SystemConfig\SystemConfigService по своему усмотрению, однако для получения соответствующих полей для отображения вам придется расширить администрирование вручную, что также будет менее тривиально без возможностей плагина. О каких уже существующих функциях пакета вы говорите?

dneustadt 23.01.2023 14:00

Ничто не связано с Symfony или Shopware 6, структура каталогов проекта отличается.

Marcus 23.01.2023 14:08

Я обновил свой ответ. На самом деле вы можете заставить его анализировать ваши config.xml и отображать поля на специальной странице, это просто вопрос перехода на эту страницу в этот момент.

dneustadt 23.01.2023 15:41

Другие вопросы по теме