Подготовка дополнения для работы в MODX 3.
Добрый день!
Возникает много вопросов как обновить дополнения для работы в MODX 3.
Предлагаю вашему вниманию заметку от разработчика theboxer, на примере дополнения Collection
Cхема
Так как Collection расширяет основной класс Revolution `modResource` и этот класс должен появиться в списке, возвращаемом `$modx->getDescendants('MODX\Revolution\modResource')`, то схема должна измениться.
Заменить:
На:
CollectionContainer
`collectioncontainer.class.php` также должен измениться, потому что он переопределяет основные процессоры и требует файлы из старых мест.
Удалить старые зависимости
Из-за недавно введенной автозагрузки composer, следующие требования больше не нужны (а также они указывают на неправильные файлы при их перемещении). Необходимо удалить их все.
Используйте полную версию классов в пространстве имен для расширения `CollectionContainer`, `CollectionContainerCreateProcessor` и `CollectionContainerUpdateProcessor`.
В помощь: Изменение имен классов
Возникает много вопросов как обновить дополнения для работы в 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`В помощь: Изменение имен классов
Комментарии: 11
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Хотя мажорная версия не должна подразумевать совместимость, но и кардинально нового подхода к разработке дополнений нет.