Joomla - програмиране в MVC модел

Разработката на уеб сайтове може да се прави "от нулата" - един много бавен и тежък метод - или чрез готова първоначална система (основа), което спестява огромен ресурс от време за създаване на стандартни функции. Повечето интернет потребители използват готови системи за управление и публикуване на съдържание в техните сайтове. Тези CMS-и (Content Management Systems) / системи за управление на съдържание са уеб софтуер, подпомагащ потребителя в процеса на управление на съдържанието. Сред по-известните системи CMS се нареждат платформи като WordPress, Drupal и Joomla (на български се чете Джумла). Joomla е безплатна CMS система с отворен код (open source), което позволява свободен достъп и промяна на софтуерния код. Софтуерът на системата е написан на езика PHP, използва база данни MySQL в повечето случаи (но поддържа и други - MS SQL, PostgreSQL, а с модификации може да работи дори с Oracle), за да улесни управлението на съдържанието и доставката, както на администратора на сайта, така и на посетителя. Също така платформата Joomla притежава техники на Обектно – ориентирано програмиране (ООП).

mvc 001

Съществуват много важни и интересни концепции в платформата Джумла. Една от тях е, че Joomla компонентите използват готов дизайн, т. нар. Model-View-Controller (MVC) модел от версия 1.5 насам, излязла през 2008 г. - цели 10 години, което в Интернет е огромен период. Основната концепция на модела MVC е разделянето на приложението в отделни области: контролер, модел и изглед. Това е съществено технологично предимство спрямо кода на популярния WordPress, където всичко е смесено на едно място, и продължава да е така дори и сега.

mvc 004

  • Контролерът (Controller) контролира главната програмна логика, решава кои задачи трябва да бъдат изпълнени и зарежда подходящия изглед. За по-задълбочено приложение са създадени и под-контролери, които контролират конкретни области на приложението.
  • Областта модел (Model) се грижи за обработката на данните. Моделът трябва да е независим от контролера, не трябва да извиква методи в контролера или изгледа. Функцията на модела не е да определя логиката на програмирането, а да обработва данните.
  • Изгледът (View) се извиква от контролера, получава данните от модела, както и обработва изхода чрез разширен шаблон.

Наличието на логическа система за организация прави кода по-лесен за разбиране. Добре написаното разширение (extension) трябва да е ясно и логично, за да може и непрограмиращият потребител да прочете кода и да придобие груба представа за това, което прави.

Едно от най-трудните неща в програмирането е въпросът от къде да се започне, което означава, че съсредоточаване върху една задача в даден момент.

КАК МОДЕЛЪТ MVC ПОДПОМАГА ПРОГРАМИРАНЕТО В СИСТЕМАТА JOOMLA?

Системата Joomla използва MVC модела, като съдържа серия от класове: JController, JModel и JView, както и техни дъщерни класове. Следвайки модела, тези класове се използват, за да се намалят основните задачи по програмиране. Класовете включват функции за сигурност на кода.

Когато Joomla системата е започнала да обработва заявка от потребител, като например GET за определена страница или POST, съдържаща формулярни данни, едно от първите неща, които Joomla прави, е да анализира URL адреса, за да определи кой компонент ще отговаря за обработката, искането и ръчния контрол върху този компонент.

mvc 002

Ако компонентът е проектиран в съответствие с MVC модела, той ще премине към контролера. Контролерът е отговорен за анализа на искането и определя кой модел (модели) ще бъде необходим за удовлетворяване на искането и кой изглед трябва да се използва за връщане на резултатите обратно към потребителя.

Моделът капсулира данните, използвани от компонента. В повечето случаи тези данни ще идват от база данни - или от базата данни на Joomla, или от външна база данни, но също така е възможно моделът да получава данни от други източници, например чрез API за уеб услуги, работещ на друг сървър. Моделът е отговорен и за актуализирането на базата данни, където е уместно. Целта на модела е да изолира контролера и изгледа от подробностите за получаването или изменението на данните.

Изгледът е отговорен за генерирането на изхода, който се изпраща на браузъра от компонента. Той приканва модела да получи необходимата информация и го форматира по подходящ начин. Например, списъкът на елементите от данни, изтеглени от модела, може да бъде поместен в HTML таблица от изгледа.

Тъй като платформата Joomla е проектирана да бъде силно модулна, изходът от компонента обикновено е само част от цялата уеб страница, която потребителят ще види в крайна сметка. След като изгледът е генерирал изхода, компонентът се захваща с обратна връзка към Joomla framework, която след това зарежда и изпълнява шаблона. Шаблонът комбинира изхода от компонента и всички модули, които са активни на текущата страница, така че да може да се достави в браузъра като отделна страница.

За да предостави допълнителна мощ и гъвкавост на уеб дизайнерите, които могат да се занимават само със създаването на нови дизайни, а не с манипулирането на основния код, Joomla разделя традиционния изглед на отделен изглед и оформление. Изгледът извлича данни от модела, както в традиционния модел MVC, но след това просто прави тези данни достъпни за оформлението, което отговаря за форматирането на данните за представяне на потребителя. Предимството на това разделяне е, че Joomla шаблонната система осигурява прост механизъм за оформление, който да бъде заместен в шаблона. Тези шаблони дават пълен контрол върху цялата продукция от Joomla ядрото и всички инсталирани разширения на трети страни, които съответстват на шаблона за дизайн на MVC.

mvc 003

Платформата Joomla е полезна за широк кръг от различни типове и стилове на сайта. Освен че е сред най-големита платформи за изработка на уеб сайтове за правителствени организации по целия свят, тя се използва успешно в сферите на образование, медии, изработка на корпоративни сайтове, електронна търговия и дори лични уеб сайтове и блогове.


Печат   Е-мейл