RSS   Twitter   Copiny   Copiny
Нашел ошибку? 

Выдели фрагмент текста с ошибкой или неточностью и нажми Ctrl+Enter!

Файловая структура компонента 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

Смотрите также:
Комментарии (8) Добавить комментарий
  • Avtop
    Avtop
    25 Мая 2011, 19:52
     ↑  +1  ↓     ответ

    Спасибо за четкие разъяснения!

    А картинка вообще все расставила на свои места ;)

  • Евгений
    Евгений
    27 Апреля 2012, 19:39
     ↑  +1  ↓     ответ

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

  • Рейкбек
    Рейкбек
    02 Октября 2012, 15:12
     ↑  +2  ↓     ответ

    Для 2.5 это также актуально? Вообще хотелось бы увидеть про 2.5 побольше информации на Вашем сайте.

    Спасибо!

  • Spyer
    Spyer
    24 Апреля 2013, 17:45
     ↑  +2  ↓     ответ

    Расписано неплохо, а про взаимлдействие вьюх моделей и контролеров можно еще статейку.

  • tinyurl.com
    tinyurl.com
    24 Ноября 2019, 09:19
     ↑  0  ↓     ответ

    I'm extremely inspired along with your writing skills as neatly as with the layout for your

    weblog. Is that this a paid subject or did you modify it yourself?

    Either way keep up the nice high quality writing, it's rare to see

    a nice blog like this one nowadays..

  • tinyurl.com
    tinyurl.com
    24 Ноября 2019, 14:16
     ↑  0  ↓     ответ

    hello!,I love your writing so so much! proportion we keep

    up a correspondence more about your article on AOL? I need an expert on this

    space to resolve my problem. Maybe that is you! Looking ahead to see you.

  • plenty of fish dating site
    plenty of fish dating site
    26 Ноября 2019, 12:33
     ↑  0  ↓     ответ

    I am extremely impressed with your writing skills as smartly as with the format to your weblog.

    Is that this a paid theme or did you customize it yourself?

    Anyway stay up the excellent quality writing, it's uncommon to look a great weblog like this one nowadays..

  • Linette
    Linette
    22 Октября 2020, 18:14
     ↑  0  ↓     ответ

    I used to be recommended this web site by means of my cousin.

    I'm now not certain whether or not this submit is written via him as nobody else understand such certain about my

    difficulty. You're incredible! Thanks!

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




* обязательно для заполнения

1 введенный почтовый адрес используется только для обратной связи при ответах в комментариях и сервиса gravatar.com
.