Структура Magento – архитектура файлов CMS

Структура Magento – архитектура файлов CMS

 



 

Сегодня мы продолжим серию уроков по Мадженто для начинающих и разберем составляющие архитектуры движка.

Основные файлы и папки платформы:

/app/ — папка содержит модули, темы, конфигурационные файлы и файлы переводов. Также она содержит файлы шаблонов для административной панели и установочные файлы;
/app/etc – содержит общую конфигурацию
/app/code – содержит разные модули (модели, контроллеры, помощники, блоки, и т.д.)
/app/code/core – содержит модули Magento, разработанные собственной командой
/app/code/community – содержит модули, разработанные в сообществе Magento
/app/code/local – содержит модули, разработанные другими специалистами
/app/code/core/Mage – пространство имен magento по умолчанию
/app/code/core/Mage/{Module} – корневая папка модуля
/app/code/core/Mage/{Module}/etc – конфигурация модуля
/app/code/core/Mage/{Module}/controllers – контроллеры модуля
/app/code/core/Mage/{Module}/Block – блок логических классов
/app/code/core/Mage/{Module}/Model – объектные модели снабженные модулем
/app/code/core/Mage/{Module}/Model/Mysql4 – источники модели в модуле (:))
/app/code/core/Mage/{Module}/sql – установка и обновление sql-данных модуля
/app/code/core/Mage/{Module}/sql/{resource}/ — источник обновлений модуля
/app/code/core/Mage/{Module}/sql/{resource}/{type}-{action}-{versions}.(sql|php) – файлы-источники обновления. Например: mysql4-upgrade-0.1.0-0.1.1.sql
/app/design – тут размещаются компоненты дизайна (шаблоны, макеты, переводы)
/app/design/frontend – дизайн фронтенда (пользовательской части сайта)
/app/design/adminhtml – дизайн административной части сайта
/app/design/{area}/{package}/{theme} – настройки (конфигурация) темы
/app/design/{area}/{package}/{theme}/layout — .xml файлы, которые определяют структурные блоки для различных представлений сайта
/app/design/{area}/{package}/{theme}/template – шаблоны в формате .phtml (html вместе с php)
/app/design/{area}/{package}/{theme}/locale — Zend_Translate совместимые файлы переводов Пакета/Темы
/app/locale – файлы локализаций (переводов)
/app/locale/{locale (например, ru_RU)} — Zend_Translate совместимые файлы переводов модулей (общие переводы сайта)
/404 – папка, которая может содержать шаблоны и оформление страницы с 404-й ошибкой;
/downloader — это хранилище для загружаемых данных. В основном используется для инсталляционных файлов и файлов обновлений, загруженных через браузер;
/errors – каталог содержит шаблоны отображения ошибок в системе Magento;
/includes – содержит файл настроек config.php
/js – здесь хранятся глобальные файлы javascript
/lib – папка содержит библиотеки системы, такие как Zend и Varien
/media – каталог хранит загруженные медиа-файлы (изображения товаров, pdf документы и др.)
/pkginfo – содержит файлы с информацией об изменениях при обновлении модулей;
/skin/{area}/{package}/{theme}/ — место, где размещаются файлы стилей (CSS) и картинки Пакета/Темы
/var – папка для временных файлов. Здесь можно найти файлы кэша, сеансов, резервного копирования базы данных, экспорта, отчетов об ошибках;
.htaccess – файл содержит правила редиректов mod_rewrite. Также он содержит стандартные директивы веб-сервера и PHP, которые позволяют улучшить производительность и безопасность сайта;
.htaccess.sample – это бэкап основного .htaccess файла. Если вы изменяли основной файл, бэкап можно использовать для возврата к настройкам по умолчанию;
cron.php – файл скриптов, которые должны выполняться системой по расписанию;
favicon.ico – «фавикон» Magento по умолчанию. Эта маленькая иконка отображается в верхней панели браузера, в закладке вашего сайта;
index.php – основной, индексный файл Magento;
index.php.sample – архивная копия основного index файла. Он может быть использован для отмены изменений в случае модификации index.php;
LICENSE_AFL.txt – условия лицензии AFL (Academic Free License), под которой распространяется Magento;
LICENSE.txt – условия лицензии Open Software License на Magento;
php.ini.sample – файл содержит образцы php-директив, которые могут быть использованы для модификации настроек PHP. Если вы хотите задействовать эти настройки – переименуйте его в php.ini

Общие представления о работе платформы

В основе движка лежит идеальное сочетание Zend Framework с архитектурой MVC (Model — View — Controller).

Zend Framework: фреймворк реализован на PHP и является в настоящее время одним из наиболее мощных и широко используемых, благодаря сильным и уникальным особенностям. Используя Zend, можно достаточно легко расширять число классов и интегрировать различные библиотеки без конфликтов в конфигурации.
MVC: Model-View-Controller (Модель-Представление-Поведение) – программный шаблон проектирования для реализации пользовательских интерфейсов. Шаблон проектирования разделен на три взаимосвязанные компонента для того, чтобы модификация одного из них оказывала минимальное воздействие на остальные.

  • Модель: обеспечивает классификацию данных и методы работы с ними, при запросах реагирует и изменяет свое состояние.
  • Вид (Представление): запрашивает информацию из модели, которую он использует для генерации выходного представления пользователю.
  • Контроллер (Поведение): может посылать команды и запросы на модель, чтобы обновить ее состояние (например, при редактировании документа).

 

Как устроен модуль в Magento

Модуль (расширение) Magento включает в себя следующие компоненты:
Block: загрузка данных Блока, применение данных из базы данных, перед отображением их в шаблоне.
Controller: получает запросы пользователей через HTTP и перенаправляет их на на класс для применения.
Etc: включает XML файлы, используемые для настройки модуля. Каждый модуль имеет соответствующие XML файлы.

  • Config.xml: используется для определения модели, хелпера, блока…
  • System.XML: создает пользовательские поля для меню в левой части админпанели (в разделе Система-Конфигурация).
  • Adminhtml.xml: файл конфигурации модуля в консоли администратора.

Helper: создает функции, которые можно использовать в разных местах системы. Хелпер также может быть вызван через: Mage::helper(‘module/helper’)->helperfunction();
Model: создает прямые запросы для отправки в базу данных.
Sql: Создает таблицы, обновляет их, изменяет базу данных.

 

Структура темы для Мадженто

Если вы хотите изменить существующий шаблон или установить новую тему, вы должны знать, что файлы шаблонов размещаются в 3 основных папках:

  • /app/design/frontend/ПАКЕТ/НАЗВАНИЕ_ТЕМЫ/layout/ — содержит .xml файлы, определяющие, какие модули должны быть вызваны файлами шаблонов и загруженные в предопределенные блоки на сайте;
  • /app/design/frontend/ ПАКЕТ/НАЗВАНИЕ_ТЕМЫ /template/ — содержит файлы и подпапки с шаблонами финальной структуры, выводимой пользователю;
  • /skin/frontend/ ПАКЕТ/НАЗВАНИЕ_ТЕМЫ/ — содержит CSS, картинки, файлы JavaScript и Flash, которые относятся к шаблону.

 

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

 

 



 

3 комментария для «Структура Magento – архитектура файлов CMS»

  1. макс

    Здравствуйте.Я поставил шаблон на магенто он выдает пустую страницу.с помощью вашей статьи проверил все установленные файлы все сходится.в чем может быть проблема?

    1. ZAnatoly

      Причин может быть масса. Нужно разбираться в каждом конкретном случае.
      Вот отсновные причиные:
      1) вывод пустой страницы связан с ошибками, вывод которых отключен (вам нужно включить отладку кода, и посмотреть логи системы)
      2) мало памяти на сервере (если у вас недорогой хостинг, и места свободного нет — системе не хватает ресурсов)
      3) ошибки в коде, особенно в таких файлах как page.xml и local.xml шаблона (очень часто допускаются опечатки или ошибки синтакса)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *