News

Als je aan het werk gaat in Magento 2 kom je een aantal termen tegen die in Magento 1 niet werden gebruikt. Eén van de termen is Composer. Composer is namelijk één van de vernieuwingen waar Magento 2 zwaar op leunt. Er zijn een aantal belangrijke componenten binnen Composer die je tegenkomt tijdens de ontwikkeling van een Magento 2 webshop. Het is daarom handig om globaal te weten waar de bestanden zich bevinden en wat de functie ervan is. In deze blog gaan we hier nader op in en leggen we uit wat Composer nou precies is, waar je het voor kunt gebruiken en voorzien we je van handige links als je technisch meer de diepte in wilt gaan!

Wat is Composer?

Composer is een dependency management tool voor PHP. Met Composer is het mogelijk om exact te aan te geven welke packages met bijbehorende versies er nodig zijn voor jouw project en uit welke repository deze dienen te komen.Dus je kunt al jouw gebruikte packages en dependencies in no time installeren of updaten naar de laatste versie! Handig? Absoluut, want het scheelt je ontzettend veel tijd! Je hoeft namelijk niet meer zelf ZIP-bestanden te downloaden, uit te pakken, verschillende versies van documenten te beheren, oude bestanden te verwijderen etc. Hoe dit precies werkt en wat er nodig is voor de configuratie lichten we hieronder nader toe aan de hand van een aantal voorbeelden. Hiernaast voorzien we je van handige links als je technisch meer de diepte in wil gaan!

Waarvoor gebruik je Composer?

Stel, je bent bezig met de ontwikkeling van een nieuwe webshop en jouw code gebruikt hiervoor libraries (in Composer packages genoemd). Het is goed mogelijk dat deze packages op hun beurt ook weer afhankelijk zijn van andere packages. Deze afhankelijkheden worden “dependencies” genoemd. Daarnaast is het mogelijk dat er binnen een team door meerdere personen wordt gewerkt aan hetzelfde project. Het is dan belangrijk dat de andere teamleden deze packages ook gebruiken om zo te voorkomen dat iedereen met andere code werkt en dat die code die je geschreven hebt ook bij jouw teamleden werkt of andersom. Daarnaast is het ook van belang dat iedereen met dezelfde versie van een package werkt. Een andere versie kan er immers voor zorgen dat jouw code niet meer correct werkt. Het oplossen en beheren van al deze packages en dependencies is een tijdrovende klus. Dit is tijd die je liever aan andere zaken besteedt. Composer regelt dit allemaal voor je! Dus geen omkijken maar naar het downloaden,uitpakken of verwijderen van bestanden. Kortom: het werken met Composer bespaart je een hoop tijd en gedoe!

Direct aan de slag met de Composer tool

Dependencies updaten

Het updaten van dependencies regel je met het commando:

composer.phar update

Zelf definiëren welke dependencies je nodig hebt

Composer maakt gebruik van het bestand composer.json dat zich in de root van de Magento installatie bevindt. Hierin staan alle packages gedefinieerd die gedownload dienen te worden. Naast de packages die standaard benodigd zijn voor Magento kun je hierin zelf ook packages definiëren die benodigd zijn voor jouw project. Die kunnen bijvoorbeeld ook komen uit andere repositories zoals Packagist.

De afbeelding hierboven geeft je een indruk hoe het bestand composer.json eruit ziet.

Hoe zorg ik ervoor dat iedereen met dezelfde dependencies werkt?

Naast composer.json bestaat er ook het bestand composer.lock. Dit bestand is belangrijk voor Composer omdat het exact bijhoudt welke package versies er zijn geïnstalleerd binnen het project en de package-versies worden daarin “gelocked”. Hiermee voorkom je dat een teamlid met een andere versie werkt van een package en dat er hierdoor problemen met de code ontstaan. Stel: binnen jouw project wordt voor een bepaalde package versie 1.* gedefinieerd en jouw collega's gebruiken het commando onderstaande commando:

composer.phar update

Met het bovenstaande commando wordt een update naar bijvoorbeeld versie 1.2.4 doorgevoerd (indien beschikbaar) voor de betreffende package zoals gedefinieerd in composer.json. Als de composer.lock niet bestaat wordt deze na het updaten gegenereerd om daarin de geïnstalleerde package versies te “locken”.

Wil je bijvoorbeeld project-packages bijwerken naar de versies die in het bestand composer.lock zijn gedefinieerd dan gebruik je het commando:

composer.phar install

Indien composer.lock wel bestaat zal dit bestand gerespecteerd worden en worden de versies gedefinieerd in composer.lock geïnstalleerd. Mocht heb bestand nog niet bestaan dan maakt dit commando het bestand composer.lock om alle packages en depencency versies te locken.

De afbeelding hierboven geeft je een indruk wat er allemaal in een .lock-bestand gedefinieerd kan worden.

Naast de bovenstaande commando’s kun je nog veel meer met de composer.phar.

- Composer.phar outdated:

Geeft een lijst met packages die outdated zijn.

- Composer.phar search monolog

Zoekt door de repositories (bijvoorbeeld: packagist) die binnen jouw project zijn gedefinieerd naar het package “monolog”.

Een uitgebreide uitleg en meer informatie vind je op de website van Getcomposer.org.

Magento Marketplace en de Component Manager

Composer een belangrijk onderdeel geworden van Magento 2. Maar niet alleen als je met Magento ontwikkelt of een Magento installatie uitvoert krijg je te maken met Composer. Een nieuw onderdeel van Magento 2 is de Magento Marketplace dat op de achtergrond gebruikt maakt van Composer. Als je via de Marketplace extenties installeert wordt ook gebruik gemaakt van Composer. De nieuwe Marketplace kan gekoppeld worden aan jouw Magento account, daarmee wordt ook bijgehouden welke pakketten je reeds hebt aangeschaft en kunnen indien gewenst automatisch voor je worden geïnstalleerd. Voor meer informatie kun je terecht op de website van Magento Marketplace.

De Component Manager vind je terug in de backend van Magento 2. Hier kun je de Component Manager koppelen aan jouw Marketplace account. Aankopen worden hierbinnen gesynchroniseerd en eventueel geïnstalleerd. Als er updates beschikbaar zijn voor de gebruikte componenten(extenties, dependencies, thema’s, taalpakketten etc.) laat de Component Manager je dit zien en geeft je de mogelijkheid om zelf te bepalen welke updates je wil of niet wil installeren. Ook voor de Component Manager geldt dat hiervoor op de achtergrond Composer wordt gebruikt.

Interesse in Magento 2?

Bekijk onze Magento 2 hosting oplossingen , neem vrijblijvend contact op of probeer alle opties zelf! Uiteraard gratis en vrijblijvend in onze veilige testomgeving.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

ten + = twelve