Dezvoltarea unei componente de model-view-controller
Componenta Dezvoltarea Model-View-Controller. Partea 3: Utilizarea bazei de date.
In acest tutorial, vom lucra cu modelul. In schimb, datele conținute în modelul de cod, modelul va prelua datele din baza de date. Vei învăța cum să utilizați JDatabase de clasă.
date regăsirea
Modelul nostru conține o singură metodă: getGreeting (). Această metodă este foarte simplă - returnează linia de întâmpinare.
Vom face salutul mai interesant prin descărcarea din baza de date. Cum de a crea un fișier SQL și adăugați-l la XML, vom arăta mai târziu. Pentru moment, vom înlocui doar siruri de caractere noastre cod retur cod, care va primi un rând din baza de date.
$ Db = amp; JFactory. getDBO # 40; # 41; ;
JFactory - clasa statică, care este folosit pentru link-uri la multe dintre obiectele de sistem. Cele mai multe informații pot fi găsite în documentația API.
Nume metodă getDBO important de reținut.
Acum, că avem o legătură într-un obiect bază de date, putem obține datele noastre. Acest lucru se face în două etape:
- păstrarea cererii noastre în baza de date de clasă
- descărcare a rezultatelor
funcţia getGreeting # 40; # 41;
# 123;
$ Db = amp; JFactory. getDBO # 40; # 41; ;
$ Query = 'SELECT salut din #__hello';
$ Db -> setQuery # 40; $ interogare # 41; ;
$ = $ Db Felicitare -> loadResult # 40; # 41; ;
a reveni $ salut;
# 125;
salut - acesta este numele tabelei din baza de date, vom crea mai târziu, și greeting- acest nume de câmp. Dacă nu sunteți familiarizați cu SQL, trebuie să verificați manualul pe ea.
Metoda $ DB> loadResult () va executa interogarea bazei de date stocate și returnează primul câmp al rezultatului din primul rând.
Crearea fișierului de instalare SQL
aplicații de instalare în Joomla sprijină executarea de interogări SQL în timpul instalării componentelor. Toate întrebările pot fi scrise într-un fișier text simplu.
Avem trei interogări în fișierul de instalare nostru: prima - pentru a elimina tabel în cazul în care există deja, al doilea - pentru a crea un tabel cu câmpurile necesare, iar al treilea este folosit pentru a introduce date.
Aici sunt întrebările noastre:
DROP TABLE IF EXISTS `#__ hello`;
CREATE TABLE `#__ hello` (
`Id` int # 40; 11 # 41; auto_increment NOT NULL.
`Greeting` varchar # 40; 25 # 41; NOT NULL.
PRIMARY KEY # 40; `id` # 41;
# 41; MOTOARE = MyISAM AUTO_INCREMENT = 0 = DEFAULT CHARSET utf8;
INSERT INTO `#__ hello` (` greeting`) VALORI ( 'Hello World!'), ( 'Bonjour, Monde!'), ( 'Ciao, Mondo!');
Prefixul „__ #“ Joomla va înlocui prefixul de instalare curent. În mod implicit, tabelul va fi numit jos_hello. Joomla vă permite să utilizați o bază de date pentru a lucra cu instalarea Joomla multiple, și, în același timp, pentru a evita erorile de la aceleași nume de tabelă.
În baza noastră de date, există două câmpuri. Primul câmp este id-ul, și este numit cheia (cheia primară). Câmpul cheie este utilizat pentru a identifica în mod unic o înregistrare. Acesta este adesea folosit pentru a găsi rânduri în baza de date. Alte câmp - un salut. Acest câmp stochează salut de text.
Reținem cererile noastre install.utf.sql fișier.
Crearea unui fișier text eliminat SQL.
Deși se speră că utilizatorii nu vor dori să eliminați componenta noastră, este important că, dacă ștergeți baza de date nu ar trebui să meargă intrările suplimentare. Joomla va avea grijă de ștergerea fișierelor și directoarelor care au fost create în timpul instalării, dar trebuie să activați manual interogări care va elimina și tabele care au fost adăugate la baza de date. Din moment ce avem doar un singur tabel, avem nevoie pentru a interoga:
DROP TABLE IF EXISTS `#__ hello`;
Salvați această căutare în fișierul uninstall.utf.sql.
Actualizare fișier de configurare XML
Avem nevoie pentru a schimba câteva lucruri în fișierul de instalare nostru. În primul rând, trebuie să adăugați noastre două noi fișiere în lista de instalare. Fișierele SQL trebuie să fie în dosarul admin. În al doilea rând, trebuie să spunem de instalare pe care le-a lansat anchete în instalarea și demontarea componentei.
Noul nostru fișier arată ca aceasta:
Fii atent la atributele din tag-ul
conducător auto atribut determină interogări au fost scrise într-o bază de date. În prezent, acest lucru poate fi doar MySQL, dar în versiunile viitoare ale Joomla poate fi mai mare decât driverele de baze de date disponibile.
concluzie
Acum avem o componentă care corespunde structurii MVC și utilizează clase JDatabase.