...

четверг, 28 ноября 2013 г.

[Из песочницы] Magento глазами Junior'a

Привет хабр!

image


Буквально месяц назад мне дали проект магазина, в качестве CMS была выбрана Magento. Хотелось бы предостеречь людей работающих с данным продуктом впервые от ошибок сделанных мной.



Основы




Выбор среды разработки



Думаю стоит сказать о том, что простым редактором с подсветкой кода не отвертеться. Первым делом на что стоит обратить внимание при выборе IDE, это плагины. Нужны они в основном чтобы “прыгать” по классам (да, CMS написана так, что средствами среды разработки этого сделать невозможно) и более комфортно работать с шаблонами в блоках. Мне удалось найти только «условно-бесплатный» Magicento для PHP Storm, постоянно спамивший уведомлениями о новой версии. Но заставить PHP Storm прыгать по методам Magento он не смог. Скачать последнюю версию плагина можно с сайта после донейта или отправки жалобного письма разработчику. Старая версия плагина доступна в репозитории.
Отсутствие документации



Magento не дружелюбна к разработчикам и толковой документации под нее нет. Единственное что остается делать — гуглить! Причем зачастую ответы можно найти только на англоязычных блогах, форумах или Stack Overflow, так что без базовых знаний языка у вас явно возникнут затруднения.
Гибкость системы



Несмотря на многочисленную критику в сторону продукта, стоит отметить что Magento достаточно гибкая система. И зачастую большая часть задач решается средствами самой CMS, без вмешательства в код. По этому всегда смотрите функционал и доступные расширения, прежде чем начинать писать код. Это сэкономит вам много времени. В то же время стоит понимать, что при создании к примеру промежуточной страницы на этапе добавления товара в корзину может уйти не мало сил и нервов.

Разработка


Я не буду описывать процесс создания хеллоуворлд, блога или почты для Magento. Таких статей более чем достаточно даже на просторах рунета.


Переопределяйте все что можно и используйте эвенты



Запомните, какими бы не были незначительными изменения в классах или шаблонах — переопределяйте используйте эвенты! Это спасет ваше время и время других разработчиков еще не раз. При этом делайте это обдуманно, переопределенный вами класс может поломать чужой модуль.

Про способ с эвентами уже писалось в другой статье. Блоки и классы стоит переопределять в локальной директории, сделать это достаточно просто. Необходимо продублировать полный путь до класса в директории ./app/code/local/ и скопировать файл из core или community туда. Приоритеты поиска для вызываемых файлов такие:

1. local — всегда используйте эту директорию для переопределения или создания собственных расширений. Наиболее приоритетными считаются файлы расположенные в данной директории.

2. community — в этой директории лежат расширения разработанные сообществом.

3. core — модули ядра. Никогда не вносите изменения в данной директории.

Для переопределения шаблонов идем в админку, System -> Configuration -> Design и меняем значения в полях блока Themes на название директории в которой будут переопределенные шаблоны. Например создаем директорию по такому шаблону ./app/design/frontend/имятемы/override/ и вписываем override все поля.


Включаем показ ошибок и режим дебага



Из коробки Magento умеет отлавливать ошибки и писать их в логи, но работает это далеко не всегда. На хабре уже была статья, о том как отладить непонятные ошибки в Magento, но и этого бывает недостаточно. Для того чтобы включить показ ошибок, необходимо добавить строчку в корневой “.htaccess”:

SetEnv MAGE_IS_DEVELOPER_MODE "1"


Статичные страницы и блоки



Нет необходимости городить расширения для простейших задач. Создавайте статичные страницы и блоки через админку. Это сэкономит не мало времени тем, кто будет работать над сайтом после вас. Так же в статичных страницах и блоках мы можем вызывать другие блоки.

This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers.


Комментариев нет:

Отправить комментарий