Расширение магазина плагин Api Расширение блокирует еще один? - PullRequest
0 голосов
/ 19 сентября 2018

Я только начал с магазина и столкнулся с «простой» проблемой.Я работал с на сайте разработчика Tutorials / FAQ, но не могу выяснить свою проблему.

Я искал в Интернете, но ничего не нашел с "2 плагинами для ApiExtension, которые блокируют друг друга",Так что, может быть, нет проблем?

Я установил Плагин, который предоставляется магазином в его руководстве: https://developers.shopware.com/developers-guide/rest-api/extend-api-resource/

Я прочитал и (я думал) узнал, как он работал,Поэтому я создал свой собственный плагин, используя предоставленный в качестве «скелета».Я изменил пространства имен на мой слизень.Кроме того, я изменил имя поля, которое должно быть добавлено к результату для целей тестирования.Пока я пытался выяснить, я изменил имя класса на «Статьи» вместо «Статья».

Результат, который я ожидал: если оба плагина активированы, оба поля будут присоединены.

Результат:

  • Если активирован только мой плагин, вызов API / статей возвратит результат с моим (правильным) полем «MyCustomField2».

  • Если оба плагина активированы, при вызове API / статей будет возвращено только поле, добавленное образцом плагина для магазина."MyCustomField".

Я выполнил обработку с помощью xdebug в php storm.Я вижу, что плагин загружен, контейнер инициализирован.Но в конце он не запустил мой плагин.Или действительно не возможно, чтобы 2 плагина расширяли один и тот же ресурс API?Мне нужна помощь и объяснение.

заранее спасибо - mike

smikeasmtools / Components / Api / Resource / Articles.php

namespace SmikeAsmTools\Components\Api\Resource;

class Articles extends \Shopware\Components\Api\Resource\Article
{
    /**
     * @inheritdoc
     */
    public function getList($offset = 0, $limit = 25, array $criteria = [], array $orderBy = [], array $options = [])
    {
        $result = parent::getList($offset, $limit, $criteria, $orderBy, $options);

        foreach($result['data'] as &$article) {
            $article['MyCustomField2'] = 'CustomContent';
        }

        return $result;
    }
}

smikeasmtools / Resources / services.xml

<?xml version="1.0" ?>
<container xmlns="http://symfony.com/schema/dic/services"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
    <services>
        <service id="smike_asm_tools.article_resource"
                 class="SmikeAsmTools\Components\Api\Resource\Articles"
                 decorates="shopware.api.article"
                 public="false"
                 shared="false">
        </service>
    </services>
</container>

smikeasmtools / SmikeAsmTools.php

<?php
namespace SmikeAsmTools;

use Shopware\Components\Plugin;

class SmikeAsmTools extends Plugin
{
}
...