К содержанию

Подготовка дополнения для работы в 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
3 275
Реклама

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

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

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