У фреймворку Мадженто є кілька методів, які дозволяють перевизначати core файли. У сьогоднішньому пості я розповім про один з найпростіших таких методів.
Суть даного методу полягає в тому, що вам не потрібно створювати власний модуль і писати зміни лейаута в файлі config.xml. Замість цього ви можете просто скопіювати основний файл двигуна (який потрібно перевизначити) в локальне середовище: app/code/local/Mage, зі збереженням повного шляху цього php файлу. Після цього ви можете відредагувати файл в локальному середовищі під свої потреби, а Magento буде використовувати ваш файл замість core файлу.
Приклад:
Наприклад, якщо вам потрібно перевизначити файл:
app/code/core/Mage/Catalog/Block/Category/View.php
просто скопіюйте файл View.php в:
app/code/local/Mage/Catalog/Block/Category/View.php
Перевизначення спрацює, оскільки Magento підключає PHP-файли в такому порядку: спочатку з середовища app/code/local/, потім app/code/community/ і, нарешті, з app/code/core/. Це призводить до того, що файли, які мають одну і ту ж назву з середовища local або community, матимуть пріоритет при завантаженні. Таким чином ми можемо перевизначити майже будь-який файл ядра.
Недоліки використання даного підходу:
core класів містять велику кількість методів, це означає, що ми перевизначимо всі ці методи в нашому файлі. Це неефективно, якщо нам потрібно перевизначити, наприклад, один або два методи.
Цей спосіб корисний тільки при тестуванні/розробці вашого модуля. Замість написання всього модуля ви можете швидко перевизначити основний клас, що іноді буває дуже корисним.
WordPress роками був неперевершеним "монолітом": він відповідав і за зручну адмін-панель, і за збереження даних,…
У світі веб-серверів часто говорять про протистояння Nginx vs Apache. Але що, якби я сказав…
Коли я починав свій шлях у веб-розробці, питання "який веб-сервер використовувати?" практично не стояло. Відповідь…
Коли мова заходить про веб-сервери, два імені завжди на слуху: Apache та Nginx. Apache —…
У світі веб-розробки ми постійно стикаємося з проблемою: "А в мене на комп'ютері все працює!".…
На зорі моєї кар'єри веб-розробника все було відносно просто: встановив локальний сервер (пам'ятаєте Denwer?), поклав…