menü    videók      
Mit tanulnál?
Keresés:
videót kérek belépés regisztráció
 Termék tesztek, hírek, bemutatók  ✦  mobilok, okosórák, médialejátszók, stb.  ✦  kattints ide!
A Composer használata, 1. rész - beüzemelés, első használat (2019.08.16)
Bejegyzések a témában:   php   composer  
Hozzászólások

A PHP alapú weboldalaknál gyakran használunk mástól származó, kész megoldásokat. Ez érthető és nyilvánvaló is, hiszen ha például pdf-et, Word fájlokat kellene előállítani, vagy mondjuk zip-be tömöríteni, esetleg hírlevelet küldeni, akkor nem állunk neki a nulláról kifejleszteni, különösen ha egy amúgy ritkán használt dologról van szó (és főleg ha egyéb ismeretet is megkövetel, mert például a zip formátum lelkivilágát viszonylag kevesen ismerik).

Szerencsére szinte mindenre van kész megoldás, ami úgymond tipikus feladat, funkció, tehát csak használni kell, ami viszont nem mindig egyszerű feladat, főleg a bonyolultabb dolgok esetén (mert amúgy csak egy require a kódban és letudva), mert van hogy sok más megoldásra, kódra épül és esetleg még azok is továbbiakra.

Egy konkrét példa lehet a PHPWord nevű kész megoldás a Word fájlok létrehozására, amelynek egy halom más függősége is van:

XML Parser extension
ZendEscaper component
ZendStdlib component
Zip extension
GD extension
XMLWriter extension
XSL extension
dompdf library

Ezek egy részét maga a PHP adja, de nem mindet és azokat külön be kell szerezni. Amit ugyan meg lehet tenni, de elképzelhető, hogy azok további kódokra épülnek és a végén már egy totális káosz az egész.

Belátható tehát, hogy ez így nehezen járható út és nincs is erre szükség, mert század ennyi munkával is megoldható teljesen automatikusan, a Composer használatával.

A Composer-nek csak meg kell mondani, hogy mit szeretnénk használni és beszerzi, a szükséges egyéb kódkönyvtárakkal együtt.

Egy hátránya van, hogy normál tárhelyen nem igazán használható, mivel parancssorral működik, ami tárhelyen tipikusan nyilván nincs. De egy bármely Windows, Linux, macOS számítógépre telepíthető a fejlesztési változat és utána már csak a tárhelyre kell eljuttatni.

Ehhez valamilyen webszerver is szükséges az adott gépen, például Windows esetén a WAMP.

Ha ez már megvan, akkor a Composer telepítése a következő lépés. A telepítése során lesz egy lépés, amelynél ki kell választani a PHP-t. Ez lehetőség szerint a weboldalnál használt PHP verzióval egyezzen meg:



A telepítés után a weboldal mappájába hozz létre egy composer.json fájlt.

A tartalma minimálisan ez legyen:

{
    "require":
    {
   
    }
}

A zárójelek közé kerülnek azok a dolgok, amiket használatba vennél. Ezeket beszerezni tipikusan az adott kód telepítési útmutatójában leírtak szerint tudod.

Például ha szükséged van a PHPMailer email küldőre, akkor ez kerül bele (ez le is van írva egyébként itt):

"phpmailer/phpmailer": "~6.0"

Vagyis így néz ki:

{
    "require":
    {
         "phpmailer/phpmailer": "~6.0"
    }
}



Komolyabban érdekel a PHP?

Kattints ide oktató videókért!


Ezt követően ABBAN A MAPPÁBAN állva ki kellene adni a telepítési parancsot (composer install) parancssorból, ahol a composer.json is van:



Segítség ehhez:

nyisd meg a Windows fájlkezelőt > válaszd ki a mappát > tartsd lenyomva a Shift-et > kattints jobb egérrel > majd powershell vagy parancssor ablak megnyitása itt



Ha minden jól ment, akkor nem írhat hibát:



És a weboldal mappájában van egy vendor mappa így már:



Bármi, bármennyi különféle PHP kódkönyvtárat, megoldást is telepítesz így, azokat mindet használatba veheted a weboldalon, egyetlen sor kóddal:

require('vendor/autoload.php');

A composer.json fájl több dolgot is tartalmazhat felsorolva:

{
    "require":
    {
         "phpmailer/phpmailer": "~6.0",
         "setasign/fpdf": "1.8.1"
    }
}

De a használatba vételükhöz még mindig csak a require('vendor/autoload.php'); szükséges.

A Composer-tel történő telepítéshez beszerezhetők csomagok (kód könyvtárak) a packagist.org weboldalon is. Van kereső is, tehát ha nem valami konkrétat keresel, akkor általánosságban is keresheted (pl. zip tömörítésnél csak arra keresve, hogy zip).