Magento: безопасно ли переопределять основной класс наблюдателя событий? - PullRequest
2 голосов
/ 29 апреля 2011

Предположим, в ядре есть класс наблюдателя событий. Я могу переопределить это. Но это безопасно? Я имею в виду, влияет ли это на другие функции класса наблюдателя?

Например, если в базовом классе наблюдателя есть две функции, и я переопределил только одну функцию. Тогда другая функция будет работать безопасно, как и раньше.

Я думаю, что это похоже на переопределение модели и должно быть безопасным. Я прав?

Редактировать : -

Например,

  • Существует класс CoreClassA в ядре.
  • Есть функция coreFunctionA в CoreClassA .
  • Событие core_event_a отправляется в этой coreFunctionA .
  • Другой основной модуль CoreModuleB создает наблюдатель событий с core_event_a .
  • Итак, всякий раз, когда отправляется core_event_a , вызывается CoreModuleB наблюдатель событий.
  • Предположим, CoreModuleB наблюдатель событий содержит две функции. Один для core_event_a диспетчерского действия (назовем его eventDispatchA ) и другой для какого-либо другого события диспетчеризации событий (скажем eventDispatchX ).
  • В моем пользовательском модуле я хочу переопределить eventDispatchA . В принципе, я хочу изменить некоторый код в eventDispatchA или, возможно, я просто хочу пропустить / пропустить эту функцию . Я могу переопределить это. Но повлияет ли это на eventDispatchX , если я это сделаю? Или есть какой-нибудь другой лучший способ вместо переопределения наблюдателя событий?

1 Ответ

2 голосов
/ 29 апреля 2011

Скорее всего, так и будет, но если вы переопределите что-то, что могут использовать другие, всегда стоит сделать что-то похожее:

    public function samefunction($object){
        if(mymodueleisused){
            //do your different thing
        } else {
           return parent::samefunction();
        }
    }

и как другие говорили вам: «если вам нужно изменить / переопределить ядро, то вы, вероятно, делаете это неправильно», и лучше спросить по-другому, описав, что вы хотите сделать и почему

...