Cum se creează o Bibliotecă personalizată în OpenCart

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.

Ce este o bibliotecă în 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.

Explorați codul de bază al bibliotecii

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.

Creați o Bibliotecă personalizată: Curl

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.

Cum să folosim Biblioteca personalizată

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.

Concluzie

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!

Cod