Люблю заниматься архитектурой приложений :)
Это как стратегическая игра. Увлекательно и интересно!
Уже пользуюсь (есть своя реализация)...
...
function __call($method, array $params)
...
:)
"Слушать" классы - самый лучший вариант избавиться от vqmod, при этом не "мешая" его работе
И index.php не зачем менять, лучше дописать (можно автоматом, в конец файла, даже пользователь не заметит) в конец controller/common/maintenance.php свой роутер обвертку классов. И потом просто "слушать" классы и что надо менять до или после его работы.
Сейчас я пока руками прописываю какие мне надо классы "слушать", меняю всё что захочу, там возможности изменения работы безграничны. Такой себе hook универсальный для opencart
Надо полноценный модуль такой сделать :) В настройках просто прописывать какой класс и метод слушать и как, до или после, и каким классом "менять" результаты или параметры. (связи). Тогда вообще просто свои модули будет подключать не изменяя файлов системы и без vqmod, при этом не "мешая" его работе.
P.S. А шаблон Event-Observer - предполагает на начальном этапе разработки ядра так делать, что в нашем случае не походит. Это шаблон проектирования ядра, а не обвертка уже готового