Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Magento 1.4 Theme Design_RU.pdf
Скачиваний:
318
Добавлен:
11.05.2015
Размер:
19.56 Mб
Скачать

Структура модуля Magento.

В системе Magento php-скрипты, отвечающие за работу приложение «в обычном» режиме могут находится в одном из четырех каталогов:

app/code/local/*

app/code/community/*

app/code/core/*

lib/*

Каталог core предназначен для размещения «заводского» кода, и менять, удалять или добавлять туда что-либо крайне не рекомендуется. Для этого существует два других каталога: local и community. Каталог community предназначен для размещение платных/бесплатных модулей от сообщества (обычно загруженные через magento connect). Если вы в будущем планируете сделать свой модуль общедоступным, можете смело размещать его здесь.

local – Здесь мы можем хранить наши локальные модули, а также модифицированный код из каталогаcore. Для последнего просто копируем файлы из каталога core, которые планируем изменить (структуру каталогов, включая Mage, сохраняем – иначе ничего не получится), и вносим необходимые изменения. Автолоадер Magento устроен таким образом, что вначале он ищет нужный файл в каталоге local, затем вcommunity, затем в core, затем в lib. Если ничего не найдено, выдается ошибка PHP. Поэтому, модифицированные файлы из каталога local он подгрузит в первую очередь и не станет загружать их из каталога core. Но это скорее тема для отдельной статьи.

Наконец, каталог lib предназначен для размещения кода сторонних библиотек. Здесь, к примеру,

размещен Zend Framework.

Поскольку Magento построена на Zend Framework, а тот, в свою очередь, выполнен по MVC архитектуре, предлагаю для начала познакомится с определением MVC из Википедии:

Концепция MVC позволяет разделить данные, представление и обработку действий пользователя на три отдельных компонента:

Модель (Model). Модель предоставляет знания: данные и методы работы с этими данными, реагирует на запросы, изменяя своё состояние. Не содержит информации, как эти знания можно визуализировать.

Представление, вид (View). Отвечает за отображение информации (визуализация).

Контроллер (Controller). Обеспечивает связь между пользователем и системой: контролирует ввод данных пользователем и использует модель и представление для реализации необходимой

реакции.

Важно отметить, что как представление, так и контроллер зависят от модели. Однако модель не зависит ни от представления, ни от контроллера. Тем самым достигается назначение такого разделения: оно позволяет строить модель независимо от визуального представления, а также создавать несколько различных представлений для одной модели.

по материалам Википедии

213

Полная структура модуля каталогов Magento представленна ниже. Следует отметить, что это полная

структура. Из всех представленных каталогов минимальный набор должен включать только каталог etc. companyName

moduleName/

Block - в каталоге Block находятся файлы, контролирующие

информацию, которую мы видим в браузере (практически тоже, что и View в модели MVC)

Controller (необязательно, используется для внутренних контроллеров модуля) controllers - здесь находятся наши контроллеры

etc - в этом каталоге находятся почти все конфигурационные файлы модуля Helper - здесь можно разместить вспомогательные функции,

общие для всех моделей/контроллеров/блоков модуля Model - файлы, отвечающие за сбор и выдачу информации из БД,

а также сохранение данных в БД (Модель)

sql - здесь находятся установочные sql-скрипты модуля (если требуется связь с БД)

Ко всему вышесказанному следует добавить также и то, что создав такую структуру, нам еще необходимо сообщить Magento, что у нас намечается новый модуль. Для этого, в

каталоге app/etc/modules/ необходимо создать xml файл в следующем

формате CompanyName_ModuleName.xml или CompanyName_All (для всех модулей размещенных в

CompanyName). Затем вставить в этот файл следующие строчки:

config>

<modules>

<CompanyName_ModuleName>

<active>true</active>

<codePool>local</codePool>

</CompanyName_ModuleName>

</modules>

</config>

Где <active> – показывает, включен наш модуль или нет. Может принимать значения true или false. А в<codePool> мы прописываем имя каталога из core, community, local, где размещены сами скрипты.

214

Архитектура Magento: Базоваяфайловая структура.

Фундаментальным знаниям об архитектуре Magento является ее файловая структура. Важнознать,куда нужно помещать новоствореннифайлы, так чтобы они соответствовалиструктуре ине нарушали функционирования ядра системы.

По умолчанию Magento содержит определенный набор файлов идиректорий. Каждая из них имеет разные функции. Мы пройдемся по каждой из них иубедимся,что мы понимаем назначение каждой.

215

Функциифайловв корневом каталоге.

Ниже представлен списокфайлов ито что ониделают:

.htaccess этотфайлконтролирует mod_rewrite FancyURL изадает конфигурациисервера(такие как лимит памяти) имаксимальное время выполнения PHP, для того чтобы Magento работалбыстрее.

.htaccess.sample это посутикопия.htaccess файла чтобы унас былдефолтов.htaccess файл.

cron.php Файлкоторыйдолжен выполняться какcronjobкаждые несколько минут, чтобы убедиться, что кэш Magento не влияет на работусервера.

favicon.ico этоfavicon Magento по умолчанию; маленькая иконка. Которую мы видим уurl и на вкладке браузера.

index.php – главныйзагрузочных файлMagento ифайл, которыйвсе инициализирует.

index.php.sample бэкапindex.php , наслучай если вы модифицируетеindex.php .

LICENSE_AFL.txtэто лицензия AcademicFree Licenseподкоторойвыпущено Magento.

LICENSE.txtэто лицензияOpen Software Licenseподкоторойвыпущено Magento.

pear – контролирует автоматическое обновление через downloader илиSSH. Этот файл инициализирует и управляет обновлением каждого из модулей Magento.

php.ini – пример php.ini файла для не настроенного PHPсервера рекомендуется использовать для установкиMagento на ваш сервер. Это не значит, что этим файлом нужно заменить таким же на сервере, а просто использовать его, какреференс для заменыопределенныхстрок php.ini файлна сервере.

216

Функции директорийв корневомкаталоге.

Ниже следует списокдиректорий и то что они содержат:

404 – директория, содержащая темплейты искины для 404 страницы.

app – весь код(модули), дизайны (темы), конфигурация ифайлы, используемые для переводов находится в этом каталоге. Именно в этой директории мы будем делать нашиосновные изменения при модификации Magento. Здесь также хранятся файлы, отвечающие за темплейты дизайн панели администратора.

downloader – downloader для обновления и установкиMagento без использования SSH.

js – директория, содержащая все Javascript файлы и пресделанывыводы библиотеки Javascript.

lib – все PHPбиблиотекиMagento. Это ядро кода Magento, связывающее все воедино. Zend Framework также находится здесь.

media – все медиа файлы расположены здесь. Сюда сохраняются фотографиипродуктов исгенерированные превюшкы рисунков.

pkginfo – директория для текстовых файлов, в которыхсодержится информация, которая информирует нас об изменениях, возникших вследствие обновления модулей.

report – директория, содержащая темплейты искины для отчетов, которые выводит Magento в случае возникновения ошибки.

skin – все настройкидля тем сохраняются в этойдиректории. Здесь содержатся рисунки, Javascript, CSSи Flash файлы, которые касаются тем.Хотя здесь могут бытьидругие настройки, касающиеся тем (в том числе и стили панели администратора.

var – обычно здесьсодержится весь кэш исгенерированные файлыдля Magento. Вэтой папке мы можем найтикэш сессии(еслионихранятся в файл), экспортные данные, бекапыбазы данных иотчеты об ошибках.

217

Структура папокMagento Commerce.

Структура построения дерева папок/директорий в Magento. Представлено для версий Magento Comunity 1.x.x

/app – весь основной код Magento

/app/etc – содержит xml с основными конфигурациями Magento

/app/code – содержит все модули Magento

/app/code/core – модули Вариена(Varien) а также сертифицированные модули, проще говоря ЯДРО

Magento

/app/code/community – модули для версии комьюнити из magento-connect

/app/code/local – папка для пользовательских модулей.В этой папке можно изменить/перезаписать стандартные модули Magento

/app/code/core/Mage – пространство имен Magento по умолчанию

/app/code/core/Mage/{Module} – корень модуля Magento

/app/code/core/Mage/{Module}/etc – конфигурация модуля, xml файлы

/app/code/core/Mage/{Module}/controllers – контролеры модуля Magento

/app/code/core/Mage/{Module}/Block – Block logic classes

/app/code/core/Mage/{Module}/Model – Object Models provided by module

/app/code/core/Mage/{Module}/Model/Mysql4 – Resource Models provided by module

/app/code/core/Mage/{Module}/sql – sql installation and upgrade files between module versions

/app/code/core/Mage /{Module}/sql/{resource} – resource model specific upgrades

/app/code/core/Mage/{Module}/sql/{resource}/{type}-{action}-{versions}.(sql|php) – resource update files. example: mysql4-upgrade-0.6.23-0.6.25.sql

/app/design – папака для всех пакетов с дизайнами (layouts, templates, translations)

/app/design/frontend – frontend design

/app/design/adminhtml – шаблоны frontend для HTML admin panel

/app/design/{area}/{package}/{theme} – ваша тема

/app/design/{area}/{package}/{theme}/layout – .xml файлы определяющие структуру блоков при

сборке страниц

/app/design/{area}/{package}/{theme}/template – .phtml (html with php tags) – шаблоны

/app/design/{area}/{package}/{theme}/locale – Zend_Translate языковые таблицы для автоматического перевода пакета/темы (package/theme) на другий языки

/app/locale – файлы локализации (преводов)

/app/locale/{locale (en_US)} – Zend_Translate compatible translation files for modules

/skin/{area}/{package}/{theme} – css, javascript-файлы и картинки для пакета/темы (package/theme)

/lib – are libraries such as Zend and Varien

/js – основные javascript-файлы

/media – все медиа файлы которые загружаются через админ панель (картинки товаров, pdf и т.п.)

/var – временные файлы, также кеш, репорты об ошибках и логи Magento

/includes – там лежит config.php

В версия Magento Enterprise и Magento Professional могут отличатся наличием папок

Enterprise(хранятся модули

Entrprise версии) и Professional(хранятся модули Professional версии).

/app/code/core/Enterprise

/app/code/core/Professional

218

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]