Toate articolele din seria:
Pasul 1: Se descrie diagrama componentă de bază
Primul lucru pe care avem nevoie pentru a crea o imagine de ansamblu a fișierelor, foldere, baze de date, tabele și domenii conexe. Pentru componenta noastră, vom crea sistemul de mai jos.
detalii componentă
Nume: Lendr
Componenta Nume: com_lendr
Descriere: Lendr - o componentă de Joomla! 3.0 (folosind Bootstrap), care permite utilizatorilor să creeze un profil, adăugați cărți la colecția bibliotecii dvs., răsfoiți biblioteci ale altor utilizatori pentru a cere o carte în datorii, adăugați cărți la listele de dorit (dorințe), precum și pentru a vă abona la lista de așteptare pentru o anumită carte.
funcții de bază
Lendr nouă componentă va avea următoarea gamă de opțiuni:
Acum, avem nevoie pentru a scrie structura de bază necesară pentru noi fișiere. Este cu siguranta nu va fi o listă exhaustivă, și el este probabil să se schimbe în timpul componentei de scriere. Cu toate acestea, cu schema inițială, vom putea să rămânem într-un fel la calea noastră. Aici este fișierul cheie inițial necesar pentru schema Lendr:
fişierele cheie
Acum, că ne-am scris, vom începe să creeze aceste fișiere în structura noastră dosar.
Pasul 2: Creați fișiere de baze de date
Vom începe cu crearea fișierelor bazei de date. Reținem aceste fișiere în dosarul tabele, care se află în componenta noastră de front-end. Noi cream toate fișierele care sunt descrise în schema noastră. Aici este una dintre aceste Halyards /components/com_lendr/site/tables/book.php:
În cazul nostru, fișierul conține o funcție de tabelă constructor. Această funcție descrie numele tabelului care este asociat cu acest fișier JTable și, de asemenea, definește domeniul book_id cheie primară.
În timpul creării acestor tabele, este recomandabil să se înceapă procesul de creare a script install.mysql.sql, care va fi utilizat la instalarea componentei de pe panoul de control Joomla. Aici este începutul fișierului /administrator/components/com_lendr/admin/install.mysql.sql:
Vom continua să adăugați informații la fișierul pe măsură ce trece prin procesul de creare a tabelelor noastre.
Pasul 3: Începeți crearea de foldere și fișiere componente
După crearea unui tabel de baze de date, vom crea o structură de fișier pentru componenta noastră. Mai jos este structura de bază a directoare:
Toate aceste fișiere și foldere sunt importante, dar nu toate dintre ele sunt necesare. În curând vom începe să lucreze cu fiecare dintre aceste fișiere și funcțiile pe care le conțin. Pe drum vom afla în scopul fiecăreia dintre ele.
Pasul 4: Crearea fișierelor de instalare, punctul de intrare, controlorii și vizualizări Controlorii
În această etapă, vom adăuga conținut în unele fișiere. În primul rând, considerăm fișierele de instalare, iar apoi vom lucra cu controlere și în final adăugați controler nostru de vedere.
fişierele de instalare
Primul bloc definește detaliile informațiilor cu privire la componenta. Aceste informații sunt afișate în Manager extensii Joomla! și, de asemenea, stocate în extensiile de masă (#__extensions).
Acest bloc spune Joomla! în cazul în care fișierele componente SQL. Ei au efectuat în timpul instalării pentru a crea tabelele bazei de date necesare. Puteți seta codificarea caracterelor, precum și tipul de conducător auto.
Puteți specifica, de asemenea, blocul de dezinstalare cu o structură chimică similară pentru a determina declarațiile SQL care urmează să fie executate atunci când componenta.
Acest bloc determină dosarele care urmează să fie instalat într-o componentă de front-end. nu indică neapărat fiecare fișier, folder și un nivel de fișiere rădăcină. Toate dosarele vor fi executate de căutare rekrusivny, și vor fi adăugate toate fișierele.
Fișierul script definește un set de funcții care sunt efectuate în timpul instalării. În cazul nostru am numit install.php.
Secțiunea «limbi» definește fișierele de limbă necesare. Acestea vor fi instalate în dosarul limbi sub eticheta de limbă corespunzătoare.
Blocul următor definește detaliile administratorului, fișierele de componente de administrare, precum și elementele de meniu. Aceste elemente de meniu pot fi asociate cu imaginile. Căile sunt în raport cu componenta de administrator dosar imagini.
De asemenea, în administrarea tag-ul sunt foldere și fișiere pe care ar trebui să fie instalate în partea și limbă fișiere componentă admin administrativă.
În prima secțiune definim installer și helper clase care doresc să se conecteze.
instalați funcția este executată după componenta de instalare și include în mod tipic un mesaj despre instalarea cu succes. Textul ar trebui să utilizeze siruri de caractere de limbă, care sunt definite în dosarul admin al limbii în fișierul XX-XX.com_lendr.sys.ini.
Funcția de actualizare este realizată atunci când metoda de instalare este definită ca o actualizare.
Aici puteți defini funcții specifice pe care doriți să le executați, fie înainte de instalare sau după finalizarea acestuia. Podprobnee despre aceste caracteristici, puteți învăța din articolul „componenta de dezvoltare pentru Joomla 2.5 - instalare script-ul / actualizarea / șterge și serverul de actualizare.“
Fișierul rădăcină (lendr.php)
fișier Lendr.php în site-ul folderul rădăcină. acesta este primul fișier care detectează și citește Joomla! după instalarea componentelor. Această componentă a punctului nostru de intrare, care transmite sarcina pe controlerul, ajutoarele conectate, CSS-fișiere și JS-fișiere, plug-in biblioteci și alte lucruri de bază care sunt necesare componente. Fișierul va încărca tabelul asociat cu componenta; importa toate plug-in-uri care există în grupul de plug-in-uri „lendr“; solicitate de către utilizator pentru a determina controlerul, și apoi efectuați controlerul corespunzător pe baza acestei cereri. Deoarece componenta de scriere a fișierului va continua să se extindă.
controlere
Controlerele în Joomla! 3 componente sunt create ca o clasă cu aceeași funcție. De obicei, controlorul determină numele sarcina operatorului. Aceasta diferă de versiunile anterioare ale Joomla. în cazul în care controlorul îndeplinește mai multe sarcini legate de anumite zone ale unei componente. Crearea de componente cu o singură funcție de execuție permite conectarea controlere într-un singur lanț, creând în același timp un mod ușor accesibil pentru activitățile de urmărire și de depanare. Acestea sunt situate în site-ul / controlere / folder. Mai jos este un exemplu de unul dintre controlorii, pe care le definesc în Lendr, precum și un exemplu al controlerului implicit cu funcții de bază.
Vă rugăm să rețineți că controlerul nostru se extinde LendrControllersDefault. LendrControllersDefault (controler implicit) este foarte importantă. Ne-am extins controler nostru implicit pentru a afișa șablonul dorit.
Următorul exemplu arată /components/com_lendr/controllers/default.php controler implicit
Acest controler va primi performanța de interogare, găsiți fișierul vizualizare corespunzător, încărcați și modelul de afișare performanță corespunzătoare. Joomla! 3 la fiecare trimitere fișier trebuie să fie încărcat de model, astfel încât urmați convențiile de denumire de reprezentări și modele le putem conecta fără linii suplimentare de cod. În cazul în care modelul pentru un motiv oarecare nu există, vom încărca modelul implicit.
Este demn de menționat faptul că această SplPriorityQueue. În PHP, o matrice, care este o implementare a unui set special și oferă funcționalitatea de bază a cozii de prioritate.
controloare idei
Joomla! Acesta este unic în ceea ce privește reprezentările de prelucrare. Joomla! Acesta utilizează controlere secundare care ajută în redarea datelor și atribuirea variabilelor utilizate în șabloane. Controlerul secundar este o reprezentare componentă a folderului (site / vederi / VIEW_NAME /) și este adesea menționată în funcție de tipul dorit de redare (de exemplu, html.php redare html, phtml.php redare șablon parțială, raw.php pentru a face datele nete și etc). În versiunile anterioare ale Joomla! Aceste fișiere sunt numite ca view.html.php. view.raw.php etc. Mai jos sunt unele dintre controller vedere care utilizează Lendr.
Acest controler de vizualizare afișează detaliile unei anumite cărți, bazate pe id-ul. Funcția de model getBook () este definit în articolul următor. Vă rugăm să rețineți că variabilele care urmează să fie utilizate în șablon sunt atribuite în mod direct la obiectul curent. În funcție de circumstanțe, regulatorul de vedere pot conține diferite cantități de logică. de mai sus conține o cantitate minimă de logică.
Acest controler pentru vizualizare afișează net (neformatat) detalii ale cărților specifice, bazate pe id.
Pasul 5: Crearea unui model
Modele în Joomla! Ei lucrează în același mod ca și în majoritatea sistemelor MVC. Ele sunt angajate în prelucrarea și extragerea cea mai mare parte a datelor. La modelele Lendr ne vom concentra în articolul următor, iar acum uita-te numai la structura de bază.
Și din nou, de dragul de simplitate, în acest articol am omis detaliile fiecărei funcții. Ne vom face cu ei în articolul următor. Este important de remarcat faptul că am implementat din nou noastră de clasă implicit. Astfel, putem adăuga funcții generale într-un singur model și să le utilizeze în fiecare model.
Aceste fișiere sunt doar două modele, care vor fi create cu componenta Lendr. Alte modele sunt similare în natură și structura de bază va fi scris în articolul următor.
Rezultatele de la începerea dezvoltării
Acum, că am creat structura de bază a unui dosar de componente, de a crea un tabel de baze de date, fișierele de instalare, controlere, controlere, punctele de vedere și modele, au fost instalate componentele noastre. Desigur, funcționalitatea este încă acolo, iar componenta creează pur și simplu o cochilie goală, dar prezența unei componente instalabil creează un sentiment de satisfacție.
Asigurați-vă că pentru a explora depozitul nostru Github. si uita-te la celelalte tabele de baze de date, controlere, controlere, punctele de vedere și modelele care nu au fost descrise în această secțiune.
În partea următoare vom arunca cu capul în scris, direct modele funcționale.