Что такое MVC?

Структура компонента: папка site

Структура компонента: папка administrator

Дополнительные папки и файлы

Установочный файл name_component.xml

 

Любой компонент представляет собой код, состоящий из папок и файлов. Как правило, такой код строится по принципу MVC - model-view-controller. 

Model - модель. Осуществляет сбор и обработку данных.

View - представление, вид. Отвечает за вывод данных на экран (шаблон вывода).

Controller - контроллер. Отвечает за взаимодействие с пользователем; основная задача контроллера - запускать соответствующие файлы в соответствии с запросом пользователя.

Как правило, код любого компонента создаётся для самого сайта и для панели администратора, поэтому основной установочный пакет (сжатый инсталляционный файл с расширением .zip и т.п.) состоит из двух папок site и admin, которые после установки окажутся в папках сайта components и administrator/components соответственно. Так же обязательным является наличие в установочном пакете установочного файла с расширением .xml, без которого Joomla при установке выдаст ошибку. Более подробно рассмотрим этот файл в конце главы, а пока посмотрим на основную структуру установочного пакета:

 

  • admin (папка)
  • site (папка)
  • name_component.xml

 

Обратите внимание: файл .xml имеет такое же название, как и сам компонент. Когда заготовка для компонента будет готова и правильно составлен установочный файл, пакет сжимается при помощи архиватора, например, 7-ZIP и сохраняется с таким же названием, как и создаваемое расширение, после чего его можно будет загрузить на сайт.

 Важно: любые папки в пакете не должны быть пустыми, иначе система выдаст ошибку! Что бы этого не случилось, всегда создавайте внутри каждой вложенной папки (как минимум) пустой файл index.html.

 

Структура компонента: папка site

  • name_component.php
  • controller.php
  • model (папка)
  • view (папка)
  • index.html

 

 name_component.php 

Это основной файл компонента; именно к нему обращается система при создании страницы. Здесь, как правило, создаются общие для компонента константы, создаётся класс компонента, запускается контроллер (передаётся управление контроллеру), и выполняется переадресация.

controller.php

Основная задача контроллера (от англ. "controller" - устройство управления, многоканальный  переключатель) - запустить какой-либо файл, соответствующий запросу пользователя; это может быть в папке  view , выводящий на экран запрошенную страницу компонента (шаблон), либо файл в папке  model , выполняющий какие-либо запросы, расчёты и прочие подобные действия.

Папка model

Здесь находятся папки и файлы, отвечающие за "логику", т.е. выполняющие какие-либо расчёты, получающие какие-либо данные и так далее. После выполнения операций результат будет выведен на экран, при помощи запуска соответствующего файла шаблона в папке  view .

Папка view

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

Структура компонента: папка administrator

Папка  admin  устроена аналогично папке  site : в ней так же есть главный файл name_component.php, к которому обращается система при поступлении соответствующего запроса; этот файл точно так же передаёт управление контроллеру и так далее.

Дополнительные папки и файлы

В обоих частях компонента могут так же создаваться любые другие дополнительные папки и файлы; это зависит от того, какой компонент вы создаёте, от того, какие задачи он должен решать. В любом случае вы должны заранее продумать общую структуру сайта, что бы не создать слишком сложную программу, в которой сами же потом будете с трудом разбираться. А вот создавать дополнительные папки и файлы лучше после того, как вы установите заготовку компонента на сайт, поэтому данный вопрос будет рассмотрен в следующих главах.

 

Установочный файл name_component.xml

 При создании данного файла будьте предельно внимательны, любая ошибка даже в одну букву не позволит установить заготовку на сайт!

Данный файл содержит общую информацию о компоненте (название, дата создания, автор и так далее), и (как минимум) информацию о имеющихся папках и файлах, включая вложенные. Так же может присутствовать и дополнительная информация, например, об имеющихся инсталляционных и деинсталляционных файлах,  медиафайлах и так далее. Для заготовки вполне будет достаточно описать основные папки и вложенные в них файлы, но если вы уже точно знаете, какой компонент вы будете создавать и какие таблицы использовать в базе данных, вы можете сразу всё это прописать в установочном файле; в этом случае таблицы будут созданы автоматически и вам не придётся это делать вручную. Код установочного файла выглядит так:

 

   1     <?xml version="1.0" encoding="utf-8"?>
   2     <extension type="component" version="1.0.0" method="upgrade">

   3     <name>my_component</name>
   4     <creationDate>29.05.2020</creationDate>
   5     <author>S.D.A.</author>
   6     <authorEmail>Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.</authorEmail>
   7     <authorUrl>https://web-development-school.ru/</authorUrl>
   8     <copyright>Copyright 2020</copyright>
   9     <license>http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL</license>
  10    <version>2.5</version>
  11    <description></description>

  12    <install>
  13          <sql>
  14                <file driver="mysql" charset="utf8">sql/install.mysql.utf8.sql</file>
  15          </sql>
  16    </install>
  
  17    <files folder="site">
  18          <filename>index.html</filename>
  19          <filename>impg.php</filename>
  20          <filename>controller.php</filename>
  21          <folder>views</folder>
  22          <folder>processing</folder>
  23          <folder>config</folder>
  24          <folder>images</folder>
  25   </files>

  26    <administration>
  27          <menu>IMPG</menu>
  28          <files folder="administrator">
  29          <filename>index.html</filename>
  30          <filename>impg.php</filename>
  31          <filename>controller.php</filename>
  32          <folder>sql</folder>
  33          <folder>views</folder>
  34          </files>
  35    </administration>

  36    </extension>

 

Строки 1-2 указывают версию .xml, тип расширения (компонент), кодировку и метод установки (upgrade).

Строки 3-11 указывают название компонента, дату создания, автора, e-mail автора, адрес сайта автора, copyright, лицензию и версию компонента.

Строки 12-16 содержат информацию о установочном файле для базы данных (читайте о нём ниже).

Строки 17-25 информируют о наличии папки  site  и вложенных в неё папках и файлах.

Строки 26-35 информируют о наличии папки  administration  и вложенных в неё папках и фалах.

Строка 36 - закрывающий тег (открывающий находится в строке 2). 

Как создать заготовку компонента и установить её на сайт, читайте в следующей главе.

Добавлять комментарии и ответы могут только пользователи, прошедшие регистрацию!
Зарегистрируйтесь и напишите своё мнение или ответ!