Развитие на компонент модел-изглед-контролер

Развитие Компонент Model-View-Controller. Част 3: Използване на базата данни.

В този урок, ние ще работим с този модел. Вместо това, данните, съдържащи се в код модел, моделът ще вземат данните от базата данни. Ще се научите как да използвате клас JDatabase.

Извличане на данни
Нашият модел съдържа един метод: getGreeting (). Този метод е много проста - тя връща поздрав линия.

Ние ще направим поздрава по-интересно, като го изтеглите от базата данни. Как да се създаде SQL файл и да го добавите към XML, ще покажем по-късно. За сега, ние просто ще замени нашия код струни връщат код, който ще посрещне един ред от базата данни.

$ Db = усилвател; JFactory. getDBO # 40; # 41; ;

JFactory - статичен клас, който се използва за връзки с много от обектите на системата. Повечето информация можете да намерите в документацията на API.
име Метод getDBO важно да се помни.

Сега, ние имаме връзка към обект на базата данни, можем да получим нашите данни. Това се прави на два етапа:

  • опазването на нашата заявка в базата данни на класа
  • изтегляне на резултатите
Нашият нов метод getGreeting () изглежда така:

функция getGreeting # 40; # 41;
# 123;
$ Db = усилвател; JFactory. getDBO # 40; # 41; ;

$ Query = 'Изберете поздрав от #__hello ";
$ Гб -> setQuery # 40; $ заявка # 41; ;
$ Поздрав = $ db -> loadResult # 40; # 41; ;

върне $ поздрав;
# 125;

здравей - това е името на таблицата в базата данни, ние ще създадем по-късно, и това име greeting- област. Ако не сте запознати с SQL, трябва да проверите за употреба върху него.

Метод $ db-> loadResult () ще изпълни заявката съхранява база данни и да се върне на първото поле на резултата от първия ред.

Създаване на инсталация SQL файл

приложения монтажник в Joomla поддържа изпълнение на SQL заявки през компонент инсталация. Всички запитвания могат да бъдат написани на обикновен текстов файл.

В момента има три заявки в нашия инсталационния файл: първата - за премахване на масата, ако вече съществува, а втората - да се създаде таблица с необходимите полета, а третият е използван за въвеждане на данни.

Това са нашите въпроси:

DROP ТАБЛИЦА Ако съществуват `#__ hello`;

Създаване на таблица `#__ hello` (
`Id` Int # 40; 11 # 41; NOT NULL auto_increment.
`Greeting` VARCHAR # 40; 25 # 41; NOT NULL.
първичен ключ # 40; `id` # 41;
# 41; ДВИГАТЕЛ = MyISAM auto_increment = 0 По подразбиране CHARSET = utf8;

INSERT INTO `#__ hello` (` greeting`) стойности ( "Здравей, свят!"), ( "Bonjour, Monde!"), ( "Ciao, Mondo!");

Представката "__ #" Joomla ще замени сегашната инсталация префикс. По подразбиране, на масата ще се нарича jos_hello. Joomla ви позволява да използвате една база данни за работа с множество Joomla инсталация, и в същото време да се избегнат грешки при същите имена маса.

В нашата база данни, има два полета. Първото поле е идентификатор, и той се нарича ключ (първичен ключ). Полето ключ се използва за идентификация на запис. Той често се използва, за да намерите редове в базата данни. Друга област - поздрав. В това поле се съхранява поздравителен текст.
Запазваме нашите искания install.utf.sql файл.

Създаване на заличаване на SQL файл.

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

DROP ТАБЛИЦА Ако съществуват `#__ hello`;

Запази това търсене uninstall.utf.sql файл.

Актуализация за настройка на XML файл

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

Обърнете внимание на атрибута във секции и - Този набор от знаци и шофьор. Кодова - тип кодиране използва. Препоръчително е да се използват само utf8. Ако искате да създадете друг монтаж кодиране на изображението (за по-старите версии на MySQL), трябва да промените този атрибут.

Умение шофьор определя заявки са написани на база данни. В момента, това може да бъде само на MySQL, но в бъдещите версии на Joomla може да са по-големи от наличните драйвери за бази данни.

заключение
Сега имаме компонент, който съответства на структурата MVC и използва класове JDatabase.