Model-View-Controller част 1
Нека обобщим частите на компонента MVC:
Моделът е част от компонент, който работи върху данни от приложението. В нашия случай моделът ще съдържа методи за добавяне, премахване и актуализиране на информация. По този начин, ако програмата запази данните във файлове и ние трябва да ги запишем в базата данни, тогава за това ще трябва само да сменим модела, без да докосваме останалата част от кода.
Изгледът е част от компонент, който взема данни от модел и ги извежда към нас в потребителския интерфейс. За прости уеб приложения View генерира html страница с входни данни. Тези. изгледът взема данни от модела и ги вмъква в шаблона, който потребителят в крайна сметка вижда. Изгледът не променя данните, той ги показва само от модела!
Контролер
Контролерът отговаря за действията на потребителя. В нашия случай действието на потребителя е заявка за страница. Контролерът, в зависимост от заявката, ще извика модела, за да манипулира данните и да контролира прехода на модела към изгледа. По този начин контролерът не показва данни, а само извиква модела, който променя данните и след това прехвърля модела в изгледа, който се показва на екрана.
В зависимост от сложността на компонентите има допълнителни директории с файлове за Model, View и Controller.
Всеки компонент е в своя собствена директория. Joomla обработва компонента в следната последователност:
- Joomla! интерпретира изпълнените стойности в url: /index.php? option = com_hello.
- Търси таблицата на компонентите com_hello.
- След това търси директорията com_hello.
- Търси в тази директория входящия файл hello.php.
- И изпълнява този файл.
За нашия основен компонент ни трябват само пет файла:
- hello.php е входната точка в компонента, подобно на index.php за сайтове.
- controller.php - този файл съдържа основния контролер
- views/hello/view.html.php е този Преглед на файл. Той получава необходимите данни и ги предава на шаблона.
- views/hello/tmpl/default.php - самият шаблон.
- hello.xml е XML файл, който казва на Joomla как, къде и какво да инсталира.
Създаване на входна точка (hello.php)
Joomla! винаги обработва връзката в основния файл index.php за страниците на Front End (сайт) или administrator/index.php за страниците Back Back (admin). Функцията за обработка на URL адреси ще зареди необходимия компонент въз основа на стойността 'option' в URL адреса (метод GET) или данните, предадени от POST.
За нашия компонент URL адресът изглежда така:
Кодът за този файл е доста типичен за всички компоненти (hello.php):