Integrer eksterne biblioteker i OpenCart ved å bruke Komponist

Nesten alle rammer har i dag innebygd støtte fra Composer, et kjempebra verktøy for avhengighetsadministrasjon i PHP, og OpenCart er ikke noe unntak. I denne opplæringen lærer du hvordan du bruker Komponist til å integrere eksterne biblioteker i OpenCart.

Komposisjonens rolle i OpenCart

Siden introduksjonen av OpenCart 2.2 støttes Composer-basert arbeidsflyt. Så gå videre og ta tak i den nyeste versjonen av OpenCart; som ved å skrive dette, er det 2.3.0.2. Pass på at du installerer og konfigurerer den nyeste versjonen du har lastet ned som det vil være nyttig senere i artikkelen.

Utforsk katalogstrukturen, og du vil legge merke til visse forskjeller i forhold til tidligere versjoner av OpenCart. I sammenheng med denne artikkelen er de interessante kandidatene composer.json fil og selger katalog. 

La oss raskt gå gjennom composer.json fil.

"name": "opencart / opencart", "type": "prosjekt", "beskrivelse": "OpenCart", "nøkkelord": ["opencart", "ecommerce", "framework", "opensource" hjemmeside ":" http://www.opencart.com "," lisens ":" GPL-3.0 + "," krever ": " kardinitet / kardinitet-sdk-php ":" ^ 1.0 "," braintree / braintree_php ":" 3.2.0 "," leafo / scssphp ":" 0.0.12 "," divido / divo-php ":"> = 1.1.1 "," klarna / kco_rest ":" ^ 2.2 "," php " : "> = 5.4.0"

Selv om en diskusjon av Composer-syntaks er utenfor rammen av denne artikkelen, la oss raskt gå gjennom hva det står i lekmann.

For det første er OpenCart-prosjektet nå tilgjengelig som et bibliotek, slik at du kan installere det ved hjelp av Composer selv uten å laste ned den manuelt fra nettstedet. Videre krever det også at andre tredjepartsbiblioteker skal fungere skikkelig, slik som divider, leafo osv. Selvfølgelig behøver du ikke å bekymre deg for det som det vil bli håndtert automatisk når du kjører relaterte Composer-kommandoer.

Når du installerer et nytt bibliotek, blir den tilknyttede oppføringen lagt til i composer.json fil. De tilknyttede biblioteksfilene er plassert under selger katalog på samme nivå. Bare utforsk den katalogen, og du bør se at bibliotekene allerede er installert!

De selger katalogen inneholder også autoload.php, generert av Composer selv, som sikrer at bibliotekene lastes automatisk i OpenCart, slik at du kan bruke det med en gang. Selvfølgelig inkluderer OpenCart autoload.php mens bootstrapping prosjektet.

Så det er en rask introduksjon av hvordan Composer jobber med OpenCart. For demonstrasjonsformål installerer vi det populære PHPMailer-biblioteket ved å bruke Komponist.

Installer PHPMailer ved å bruke Komponist

PHPMailer er et populært PHP-bibliotek som er vant til å sende e-post. Vi installerer den i OpenCart med Composer. Så gå til terminalen din og endre katalogen slik at du er på samme nivå der selger katalog og composer.json filen ligger.

Kjør nå kommandoen komponist krever phpmailer / phpmailer og trykk enter! Forutsatt at alt går bra, bør det se ut som følgende.

$ komponent krever phpmailer / phpmailer Bruke versjon ^ 5.2 for phpmailer / phpmailer ./composer.json har blitt oppdatert Laster kompositorbeholdninger med pakkedata Oppdatere avhengigheter (inkludert krav-dev) - Installere phpmailer / phpmailer (v5.2.16) Last ned: 100% phpmailer / phpmailer foreslår installering av liga / oauth2-google (Trengs for Google XOAUTH2-godkjenning) Skrive låsfil Generere autoload-filer

Så det er det! PHPMailer er lastet ned og installert med hell, og det er skjønnheten til Composer! Bekreft at ved å se på selger katalog, og du finner den installert i PHPMailer / PHPMailer katalog.

La oss også åpne composer.json for å se hvordan det ser ut.

"name": "opencart / opencart", "type": "prosjekt", "beskrivelse": "OpenCart", "nøkkelord": ["opencart", "ecommerce", "framework", "opensource" hjemmeside ":" http://www.opencart.com "," lisens ":" GPL-3.0 + "," krever ": " kardinitet / kardinitet-sdk-php ":" ^ 1.0 "," braintree / braintree_php ":" 3.2.0 "," leafo / scssphp ":" 0.0.12 "," divido / divo-php ":"> = 1.1.1 "," klarna / kco_rest ":" ^ 2.2 "," php " : "> = 5.4.0", "phpmailer / phpmailer": "^ 5.2"

Som du kan se, er oppføringen "phpmailer / phpmailer": "^ 5.2" er lagt inn i krever seksjon. Så det betyr at prosjektet krever PHPMailer å fungere skikkelig.

La oss anta at du jobber med andre utviklere og trenger å dele arbeidet regelmessig. I så fall må du bare dele din composer.json Fil med dem og resten vil bli håndtert av Composer selv! De trenger bare å kjøre komponistoppdatering kommando, og det bør ta seg av å installere de nødvendige avhengighetene i deres kopi!

Nå har vi installert PHPMailer ved hjelp av Composer, men hvordan bruker jeg det? Ikke bekymre deg, jeg vil ikke forlate deg så snart - det er akkurat oppskriften til vår neste del!

Slik bruker du PHPMailer-biblioteket?

Du har allerede gjort deg selv en tjeneste ved å bruke Komponist til å installere PHPMailer-biblioteket, og du vil se det i denne delen når vi undersøker hvor grei det skal brukes i koden.

For eksempel vil vi bygge en ganske enkel tilpasset kontrollerfil som du kan ringe for å sende en e-postmelding.

Åpne din favoritt tekstredigerer og opprett eksempel / email.php under katalog / kontrolleren katalog med følgende innhold.

Fra = "[email protected]"; $ objPhpMailer-> FromName = "Sajal Soni"; $ ObjPhpMailer-> AddAddress ( "[email protected]"); $ objPhpMailer-> WordWrap = 50; $ ObjPhpMailer-> IsHTML (true); $ objPhpMailer-> Subject = "Subject"; $ objPhpMailer-> Body = "

HTML Body

"; $ objPhpMailer-> AltBody =" Vanlig kropp "; hvis (! $ objPhpMailer-> Send ()) echo" Melding kunne ikke sendes.

"ekko" Mailer Error: ". $ objPhpMailer-> ErrorInfo; exit; echo" Melding er sendt "; exit;

Du kan teste det ved å få tilgang til nettstedet ditt via http: //your-opencart-site-url/index.php? Route = example / email.

I index metode, kan du se at vi har instansert PHPMailer objekt uten noen inkluderer uttalelser som ville ha inkludert de nødvendige PHPMailer-klassene hvis vi ikke hadde brukt en Composer-basert arbeidsflyt. Du har det riktig, det er automatisk lastet av OpenCart selv. Husk det autoload.phpselger katalog gjør alt det magiske!

Etter det er noen ganske standard ting som kreves av PHPMailer å sende en e-post. Selvfølgelig har jeg forsøkt å holde eksemplet så enkelt som mulig siden diskusjonen av PHPMailer krever en egen artikkel!

Så det var en rask og enkel introduksjon av hvordan du kunne bruke Composer med OpenCart for å integrere eksterne biblioteker.

Konklusjon

I denne artikkelen har vi nettopp kløftet overflaten av en Composer-basert arbeidsflyt i OpenCart for å bruke tredjepartsbiblioteker i prosjektet. For ikke å nevne at Composer er fremtiden for verktøy for avhengighetsadministrasjon i PHP. Så det er alltid godt å få hendene skitne med det da det blir standard i alle populære rammer.

Spørsmål og forslag blir alltid verdsatt!