Основы создания модуля Magento

Много сообщество расширения (или модулей) доступны для многофункциональных с открытым исходным кодом электронной коммерции Magento, но что, если они don’ T довольно работать, как вы хотите, чтобы они?Что если бы вы могли понять структуру модуля Magento немного лучше, вплоть до того, что вы можете изменить его в соответствии с вашими потребностями или, еще лучше, написать свой собственный модуль с нуля


В этом уроке мы будем вводить кодирования Magento в виде “Hello World” стиль модуля.Цель модуля будет просто написать некоторую информацию в лог-файл каждый раз, когда продукт будет сохранен.Это очень простой модуль позволит нам охватить ряд интересных тем, в том числе:

  • app/code каталоги,
  • Структуры и создание модуля Magento,
  • События наблюдателей,
  • Logging.

Перед Мы Begin

Это руководство предполагает, что вы уже имеете установку Magento и работает локально или на сервере разработки, которые можно добавлять новые файлы.В версии Magento, что вы используете doesn’ T действительно важно, потому что мы будем рассматривать фундаментальные аспекты, которые существуют во всех версиях и редакциях: сообщества, специалистов и Enterprise.

Отключить Cache

Это один из первых уроков разработчиков Magento должны научиться: отключить кэш!Вы можете сделать это, зайдя в Admin Panel > System > Cache Management > Select All > Actions: Disable > Submit.

В то время как очень хорошо на повышение производительности в производственной среде, то кэш developer’ с врагом.Оставьте его включить на свой страх и риск!Каждый разработчик Magento я встречался имеет более чем один раз в течение часа или около того, интересно, почему их последних обновлений не появляется, только чтобы обнаружить, что Magento по-прежнему отображаются версии сайта, что это удобно кэшированных ранее, что day.

Приложение / код Directory

Мозги Magento можно найти в отдельных модулей внутри app/code каталогов, которая разделена на три области: ядро, сообщество и local.

Core

app/code/core каталог содержит все функции для продуктов, категорий клиентов, платежей и т.д. Пока вы не знаете, что вы делаете (и даже позже), держать app/code/core закрыты, потому что эти файлы не должно бытьmodified.

Magento построена таким образом, что вы можете изменить функциональность любого из этих основных файлов, не изменяя их напрямую, что гарантирует, что ваше приложение остается обновления-доказательство.Безусловно, искать, чтобы лучше понять, как Magento работает, но не touch.

Community

Как следует из названия, app/code/community Здесь вы найдете модули, которые были предоставлены третьим лицам (т.е. не Magento’ с основной группой).Сотни модули доступны через Magento Connect, иПри установке их через встроенный “Package Manager”, это где они в конечном up.

Local

Magento поставляется с пустой app/code/local каталог, готовы для Вас, чтобы добавить заказ модулей для Magento собственной установки.Это то, где мы будем работать в течение этого tutorial.

Структурирование Наша Directory

Откройте ваш любимый текстовый редактор и перейдите к app/code/local добавить некоторые новые каталоги и files.

Модуль Namespace

Первом каталоге мы создадим является “пространством имен.« Это можно назвать как угодно, но конвенции является некоторая форма названия компании или module’ с автором.Magento использует “Маг”, как его имен.Здесь, в Ampersand торговли, мы используем “Амперсанд”. Для этого урока мы будем использовать “SmashingMagazine”, как наш имен.Таким образом, создать каталог app/code/local/SmashingMagazine.

Модуль Name

В течение следующего каталога, мы дадим нашим модулем описательное имя.Модуль мы создаем буду писать записи в журнале каждый раз, когда продукт будет сохранен, так логическое имя будет LogProductUpdate.Создайте каталог app/code/local/SmashingMagazine/LogProductUpdate.

Мы должны теперь иметь следующую структуру каталогов для нашего модуля.Эти имена файлов и каталогов являются тематические sensitive, так что выгоды где appropriate.

app
  - code
      - local
          - SmashingMagazine
              - LogProductUpdate

Настройка Наша Module

Следующее, мы будем приступить к настройке нашего модуля.Конфигурационные файлы принадлежат внутри нашего модуля в каталоге с именем etc, так let’ S создать, что наряду с новыми файл XML: app/code/local/SmashingMagazine/LogProductUpdate/etc/config.xml.Этот файл XML будет информировать Magento расположения файлов в нашем модуле, а также много других вещей, таких как номер версии и событий, чтобы наблюдать.В настоящее время мы создадим простой config.xml файл, который содержит комментарии, которые объясняют значение каждого section.

<?xml version="1.0" encoding="UTF-8"?>

<!-- The root node for Magento module configuration -->
<config> 

    <!-- 
        The module's node contains basic 
        information about each Magento module
    -->
    <modules>

        <!--
            This must exactly match the namespace and module's folder
            names, with directory separators replaced by underscores
        -->
        <SmashingMagazine_LogProductUpdate>

            <!-- The version of our module, starting at 0.0.1 -->
            <version>0.0.1</version>

        </SmashingMagazine_LogProductUpdate>

    </modules>

</config>

Активация Наша Module

Следующий шаг заключается в информировании наших Magento установки, что наш модуль существует, что мы делаем, создав новый XML-файл в app/etc/modules.Название этого XML файла может быть все что угодно, так как Magento будет читать все XML файлы в этот каталог и будут заинтересованы только в содержании.Однако, по соглашению мы должны дать файлов и модулей с одноименным названием.Let’ S Создание app/etc/modules/SmashingMagazine_LogProductUpdate.xml со следующим содержанием:

<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<SmashingMagazine_LogProductUpdate>

<!-- Whether our module is active: true or false -->
<active>true</active>

<!-- Which code pool to use: core, community or local -->
<codePool>local</codePool>

</SmashingMagazine_LogProductUpdate>
...

Если вы хотите прочитать полностью статью, посетите сайт наших спонсоров

Comments are closed.