Подготовка дополнения для работы в MODX 3.

Добрый день!

Возникает много вопросов как обновить дополнения для работы в MODX 3.

Предлагаю вашему вниманию заметку от разработчика theboxer, на примере дополнения Collection

Cхема

Так как Collection расширяет основной класс Revolution `modResource` и этот класс должен появиться в списке, возвращаемом `$modx->getDescendants('MODX\Revolution\modResource')`, то схема должна измениться.

Заменить:
<object class="CollectionContainer" extends="modResource">
    <!-- Columns remain unchanged -->
</object>

На:
<object class="CollectionContainer" extends="MODX\Revolution\modResource">
    <!-- Columns remain unchanged -->
</object>
Что также изменит `metadata.mysql.php` файл, как только схема построена.

CollectionContainer

`collectioncontainer.class.php` также должен измениться, потому что он переопределяет основные процессоры и требует файлы из старых мест.

Удалить старые зависимости

Из-за недавно введенной автозагрузки composer, следующие требования больше не нужны (а также они указывают на неправильные файлы при их перемещении). Необходимо удалить их все.

require_once MODX_CORE_PATH . 'model/modx/modprocessor.class.php';
require_once MODX_CORE_PATH . 'model/modx/processors/resource/create.class.php';
require_once MODX_CORE_PATH . 'model/modx/processors/resource/update.class.php';
Также изменения распространяются на

Используйте полную версию классов в пространстве имен для расширения `CollectionContainer`, `CollectionContainerCreateProcessor` и `CollectionContainerUpdateProcessor`.

- `modResource` -> `MODX\Revolution\modResource`
- `modResourceCreateProcessor` -> `MODX\Revolution\Processors\Resource\Create`
- `modResourceUpdateProcessor` -> `MODX\Revolution\Processors\Resource\Update`

В помощь: Изменение имен классов
Иван Бочкарев
16 декабря 2019, 13:39
modx.pro
10
2 057
+23
Поблагодарить автора Отправить деньги

Комментарии: 11

Сергей Шлоков
16 декабря 2019, 15:32
+6
Вот у меня только один вопрос — ну и где та самая обратная совместимость, на сохранение которой потрачено несколько лет?
    Alexander V
    16 декабря 2019, 15:46
    0
    Не напоминайте им об этом. А то опять застрянут в каменном веке.
      Николай
      16 декабря 2019, 16:11
      0
      А вы делаете сайты на MODX?)
    Руслан Алеев
    17 декабря 2019, 00:22
    +1
    Ну она есть же. К примеру, некоторые пакеты ставятся и работают, типа TinyMCE, может в консоли будут информационные сообщения, но визуально все ок.
      Сергей Шлоков
      17 декабря 2019, 08:36
      +5
      У нас явно разное понятие обратной совместимости.
      iWatchYouFromAfar
      18 декабря 2019, 18:07
      0
      А ведь если я не ошибаюсь, это была одна из главных задач при разработке MODx 3.
        Олег Щавелев
        18 декабря 2019, 18:43
        0
        Ребят. А где MODx обещал обратную совместимость (какая формулировка). Есть ли информация на официальном сайте. Что идет полумаштабный дискусс согласен, а где первоисточник.
          Jameson
          18 декабря 2019, 19:01
          0
          А вообще какие плюсы от перехода на модкс 3?
            iWatchYouFromAfar
            18 декабря 2019, 19:03
            +1
            Искать эту инфу в первоисточнике за 5 лет- нет желания. Про то, что авторы желают сохранить совместимость с компонентами, не раз говорил Вася например.

            Хотя мажорная версия не должна подразумевать совместимость, но и кардинально нового подхода к разработке дополнений нет.
              Сергей Шлоков
              18 декабря 2019, 23:07
              +1
              Это было в обсуждениях в Слаке, на Гитхабе и др. ресурсах. Марк даже алиасы классов пилил для этого.
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          11