Печать

Файловая структура компонента Joomla и именование классов

Компоненты в Joomla 1.5 теперь могут воспользоваться преимуществами гибкости и мощности с использованием объектно-ориентированного программирования (ООП) практики. Большинство сложных компонентов будет следовать Model-View-Controller (MVC) дизайн шаблона. Эта модель отделяющей сбора данных (модели), представление (View) и взаимодействия с пользователем (Контролер) деятельности компонента. Такое разделение позволяет для расширения или пересмотра свойствами и методами одной секции, не требуя дополнительных изменений в другие разделы.

В этой статье {componentName} будет обозначать название компонента, {site} - для лицевой части сайта, {admin} - для панели управления. Отметим, так же что практически все названия регистрозависимые. Для условности будем обозначать так: если написано {componentname} - это нижний регистр, если {COMPONENTNAME} - соответственно верхний, {ComponentName} - каждая первая верхняя.

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

Структура инсталляционного файла компонента

Архив должен содержать две папки

  • admin
  • site

После установки, содержимое папки "site" попадет в "/components/com_{componentname}". А содержимое папки "admin" будет распаковано в "/administrator/components/com_{componentname}".

/site

Папка содержит файлы для лицевой части компонента.

/site/{componentname}.php
Это точка входа (или точка отправления) для лицевой части компонента. является главным обязательным файлом.
/site/controller.php
Этот файл содержит контроллер front-End либо подключает необходимый файл, в зависимости от внешних, который объявляет класс с именем "{ComponentName}Controller". Этот класс должен расширять базовый класс "JController".
/site/views
Директория содержит различные Виды(View) для компонента.
/site/views/{viewname}
Папка содержит файлы определенного Вида(View).
/site/views/{viewname}/view.html.php
Этот файла - это точка входа для вида {ViewName}. Он объявляет класс {ComponentName}View{ViewName}. Этот класс должен расширять базовый класс "JView".
/site/views/{viewname}/tmpl
папка содержит файл шаблона для Вида {ViewName}.
/site/views/{viewname}/tmpl/default.php
Это файл по умолчанию для Вида {ViewName}.
/site/models
Папка содержит различные модели, в которых нуждается приложение (компонент).
/site/models/{modelname}.php
Этот файл содержит модель с классом {ComponentName}Model{ModelName}. Он должен расширять класс "JModel". Обратите внимание, что Вид с именем {ViewName} будет по умолчанию загружать модель с именем {ViewName} если он создан. Большинство моделей именуются так же как и соответствующий вид, т.к они обычно используются вместе.
/site/controllers
Папка содержит расширяющие контроллеры для оснвовного, либо набор необходимых приложению контроллеров.
/site/controllers/{controllername}.php
Этот файл содержит класс контроллера {ComponentName}Controller{ControllerName}. Он должен расширять класс "JController"

/admin

Файловая структура в точности повторяется как и для лицевой части, описанной выше. Обратите внимание, что нет ничего общего (если конечно это не явно описано в программном коде) между лицевой и административной частями компонента. По большому счету это можно рассматривать как два отдельных компонента. При этом могут получаться моменты с одинаковыми названиями файлов и даже классов и функций. Но тем не менее они не будут пересекаться во время работы сайта.

Схематическое изображение основных составляющих компонента Joomla

Схема структуры компонента Joomla

Интересная статья? Поделись ей с другими: