Deși OpenCart oferă o mulțime de caracteristici în nucleul în sine, veți găsi adesea în situația în care veți dori să integrați o bibliotecă terță parte cu ea. OpenCart are un concept al bibliotecii care oferă un set comun de API-uri pentru operațiunile de zi cu zi, cum ar fi interacțiunea cu sistemul de configurare sau sistemul de baze de date, care se ocupă cu un sistem de e-mail, etc. Astăzi, vom vedea cum puteți implementa propria bibliotecă personalizată în OpenCart.
În acest articol, vom crea o bibliotecă personalizată, care vă va permite să efectuați apeluri CURL. Vom încerca să păstrăm lucrurile simple și clare, deoarece lucrul important de înțeles este conceptul în sine - implementarea poate varia în funcție de complexitatea.
Vom folosi cea mai recentă versiune a OpenCart. De asemenea, presupun că sunteți conștient de structura modulului OpenCart.
Deci, ce anume este o bibliotecă în OpenCart? În termeni simpli, este un set de scripturi de utilitate care ne oferă funcționalitatea utilizată frecvent în cadrul. În OpenCart, veți găsi toate bibliotecile sub Sistem / bibliotecă
director. De exemplu, o solicitare de intrare este gestionată de către Cerere bibliotecă, iar pentru tratarea răspunsurilor există Raspuns bibliotecă. În mod similar, există biblioteci pentru cache, client, bază de date și sistemul de configurare, doar pentru a numi câteva.
În general, veți încărca bibliotecile necesare în codul dvs. de controler / model după cum este necesar. Trebuie să faceți așa ceva pentru a încărca orice bibliotecă:
$ cache = $ this-> load-> library ('cache');
În exemplul de mai sus, am încărcat ascunzătoare bibliotecă. Deci, de acum înainte, veți putea să utilizați $ cache
obiecte pentru a apela metodele definite în acea bibliotecă. După cum puteți vedea, este într-adevăr un mod flexibil de încărcare a obiectelor după cum este necesar.
Astăzi vom implementa o bibliotecă curl, astfel încât să o puteți utiliza pentru a efectua apeluri CURL utilizând biblioteca respectivă. Va fi util să evitați duplicarea codului în controlere, ca și în cazul fiecărei solicitări CURL, va trebui să instanțiați obiectul și să configurați anteturile comune. Îl vom înfășura în biblioteca comună, astfel încât să fie reutilizabile și să evite duplicarea codurilor pe module.
Înainte de a începe și a începe implementarea bibliotecii personalizate, să aruncăm o privire rapidă asupra uneia dintre bibliotecile de bază ale OpenCart.
Deoarece am discutat deja biblioteca de arhivă din secțiunea anterioară, să explorăm codul acelei biblioteci. Du-te și deschide-te Sistem / bibliotecă / cache.php
în editorul dvs. de text preferat.
cache = noua clasă $ (expiră); altceva exit ('Eroare: Nu s-ar putea încărca driverul cache' $ driver. 'cache!'); funcția publică obține (cheia $) return $ this-> cache-> get (cheia $); set de funcții publice ($ key, $ value) retur $ this-> cache-> set ($ key, $ value); funcția publică șterge (cheia $) return $ this-> cache-> delete (cheia $);
Destul de ușor, nu-i așa? Oferă o implementare simplă bazată pe clasă, cu metodele necesare. Deși este un exemplu foarte simplu, ar putea fi destul de complex pentru cazul dvs. de utilizare! Continuați și explorați încă câteva biblioteci pentru a vă familiariza cu acest concept.
Deci, acum sunteți conștienți de bibliotecile de bază, să creăm propriile noastre! Creeaza o Sistem / bibliotecă / curl.php
cu următorul conținut.
get ( 'db'); * $ registry-> get ('cache'); * $ registry-> get ('session'); * $ registry-> get ('config'); * și mai mult ... * / funcția protejată __construct ($ registry) // încărcați biblioteca "Log" din "Registry" $ this-> logger = $ registry-> get ('log'); / ** * @param string $ url url * @param array $ params pereche cheie-valoare * / functie publica do_request ($ url, $ params = array ()) // log cerere $ this-> logger-> write ("Solicitare CURL inițiată pentru: $ url"); // obiect init curl $ ch = curl_init (); curl_setopt ($ ch, CURLOPT_URL, $ url); curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, 1); // pregătește arrayul post dacă este disponibil $ params_string = "; dacă (is_array ($ params) && count ($ params)) foreach ($ params ca $ cheie => valoare $) $ params_string. = $ key. . $ rtrim ($ params_string, '&'); curl_setopt ($ ch, CURLOPT_POST, count ($ params)); curl_setopt ($ ch, CURLOPT_POSTFIELDS, $ params_string); // execute request $ rezultatul = curl_exec ($ ch); // închiderea conexiunii curl_close ($ ch); return $ result;
Am definit a Răsuci
clasa cu o mână de metode.
Începând cu get_instance
metodă, ne permite să creăm un obiect al clasei în sine. Se va asigura, de asemenea, că în orice moment vom avea o singură instanță a clasei.
Apoi, am definit constructorul cu $ registru
argument. Desigur, nu aveți nevoie de niciun argument, dar, de exemplu, am folosit-o pentru a demonstra cum să încărcați alte biblioteci utilizând $ registru
obiect. În exemplul nostru, încărcăm Buturuga
bibliotecă și alocarea acesteia către logger
proprietate. Vom folosi această bibliotecă pentru a înregistra cererile de curl pentru scopuri de depanare!
În cele din urmă, există a do_request
metoda care face toate ridicarea grele pentru noi! Există două argumente: $ url
deține adresa URL la care vom face cererea de curl și $ params
deține o gamă opțională de parametri în cazul în care avem nevoie de POST orice date. Codul care urmează este destul de simplu de înțeles: face un apel în curl și returnează răspunsul!
Deci, aproape că am terminat cu configurarea bibliotecii personalizate. O vom vedea în acțiune în secțiunea următoare.
De cele mai multe ori, veți termina să apelați biblioteci de la controlerul propriu-zis. Deci, să vedem cum să încărcăm și să folosim biblioteca noastră de la controlor.
// încărcați biblioteca curl $ this-> load-> library ('curl'); $ obj_curl = Curl :: get_instance ($ acest-> registru); $ rezultat = $ obj_curl-> do_request ($ url); $ result = $ obj_curl-> do_request ($ url, $ paramuri); // în cazul paramelor $ necesare
$ This-> a sarcinii> bibliotecă ( 'curl')
instrucțiunea va încărca biblioteca personalizată. În următoarea declarație, am apelat get_instance
și a trecut $ registru
obiect ca argument constructor. În cele din urmă, am folosit do_request
metoda de a face apeluri curl!
Deci, după cum puteți vedea, este destul de ușor să creați propriile biblioteci în OpenCart! În mod similar, ați putea integra orice bibliotecă terță parte în OpenCart bibliotecă format și de a folosi în întreaga cadru, după cum este necesar.
Astăzi, am discutat conceptul de bibliotecă în OpenCart.
Dacă doriți să utilizați sau să explorați biblioteci suplimentare, nu uitați să vedeți ce avem la dispoziție pe piața noastră.
Am explorat bibliotecile de bază și am creat o bibliotecă proprie pentru curl. Sper că ți-a plăcut! Împărtășiți-vă gândurile și întrebările utilizând feedul de mai jos!