Как стать автором
Обновить

Комментарии 18

Это касается не только Magento, переписывать код библиотек, фреймворков или движков — самая ужасная практика в программировании.
Дело в том, что Magento предоставляет удобный инструмент для этих целей. В итоге модуль может переопределить лишь один метод класса ядра. И это, впринципе, удобно. Но многие злоупотребляют
Можно порекомендовать еще 5 способ — vqmod ;)
vqmod.com/

Я его на опенкарте использую, т.к. задолбало при каждом обновлении или переходе на новую версию искать сделанные мной ранее модификации.
а тут все четко и понятно, вернуть все как было — плевое дело.
Ещё есть вариант хуков — редактировать core-файлы в отдельной git-ветке, а при обновлении сделать merge.

Да, я согласен с автором, что редактировать файлы в ядре это зло и лучше использовать Event Observer там где они есть, но вдруг что, можно использовать и этот метод.
о, я помню самое сложное было управлять ссылками в меню (аккаунт, вишлист, корзина и тд ;) )
Ваш модуль будет загружен после того, на который вы ориентируетесь, если будете пользоваться нодой
парсер съел:
<depends>
А можно этот момент чуть подробнее.
Для примера я делаю rewrite модели Sales_Model_Order, но хочу что бы это переопределение работало только при использовании моего и некоторых других модулей. Что мне писать в «depends»?
Было бы интересно почитать об этом подробней с примерами
Часто приходится совмещать обсерверы с реврайтами, последние часто ломают модуль поскольку обрабатываются при выключенном Module Output
стоит добавить, что нужно делать в зависимости от обстоятельств, например, времени или денег, а также вероятности установки нового екстеншена. Все относительно
По поводу времени/денег. В нашем случае зачастую нет разницы в стоимости решения с rewrite и стоимости более красивого способа. Но если Magento не является приоритетным направлением, то, наверно, вопрос компромисса возможен. Однако, используя переписывание вы можете столкнуться с проблемами при обновлении системы, установке модулей в дальнейшем. На это тоже будет потрачено время и деньги.
Вероятность установки нового расширения в будущем больше, чем усилия на то, чтобы сделать работу хорошо сегодня.
Событий реально мало. На класс редко когда больше 1-2, а по-хорошему надо иметь 1-2 на каждый метод.
Последние работы по кастомизации на 1.5: я просто не видел событий там где мне надо было поменять поведение.
Такая ситуация возможна. Но 1-2 события на каждый метод повлияет на производительность.
А какая задача стояла в вашем случае, если не секрет? Можно в личку.
мм, не помню уже — куча мелочи. Но если пройтись по классам в local/Wott: убрать категории из фильтров в layered navigation, изменить шаг для price там же, добавить различные свойства по типу visibility в фильтры для category list — архив, скидки, coming soon, изменить поля для customer, там же сделать некоторые поля не обязательными…
Определённо надо развернуть мысль.
Да, желательно с простыми примерами.

Сейчас — весь смысл топика в заголовке :)
стоит добавить! Чтобы посмотреть список событий на странице в файле index.php нужно откомментировать строку
Varien_Profiler::enable();
и включить профайлер в админке (System > Configuration > Advanced > Developer > Debug > Profiler)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации