Composer

Inleiding

Composer laat je in een handomdraai alle nodige pakketten installeren die in je project gebruikt worden. Zo zijn er pakketten voor de bekende betaal-providers, voor Facebook en Google koppelingen, voor template parsers en ga zo maar een poosje door. In deze tutorial laat ik jou zien hoe je composer installeert en gebruikt. Tegelijkertijd passeren er een paar nuttige use cases.

Installatie

Composer vereist dat je PHP versie 5.3.2 of hoger op je computer geïnstalleerd hebt. Voor een Windows PC is het misschien het makkelijkste om WAMP of XAMPP te installeren. Voor Linux of de mac kun je php vanaf de CLI installeren. Raadpleeg Google voor meer informatie over het installeren van PHP op jouw eigen besturingssysteem.

Voor Linux en Apple Macintosh: Klik hier en plak de regels die je ziet in je CLI.
Voor Windows is er een installer. Download de installer, uitvoeren en klaar.

Controlleren of Composer geïnstalleerd is en werkt
Open de CLI (Commandline interface, Dosbox of Opdracht prompt) en probeer één van de volgende:
  • composer
  • php composer
  • composer.phar
  • php composer.phar

Uiteraard gevolgt door een druk op de Enter toets. Wanneer composer werkt zien we dit:

   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 1.2.2 2016-11-03 17:43:15
In het vervolg zal ik composer <options> gebruiken. Vertaal dat voor je zelf eventueel naar (php) composer(.phar) Welke je nodig hebt hangt een beetje af van je OS en instellingen.

Gebruik

Maak een nieuwe (lege) project directory aan daar waar je dat gewend bent of in de documentroot van je webserver. verander van directory zodat je in de nieuwe lege directory komt. Bijvoorbeeld:

mkdir C:\xampp\htdocs\projects\new-project
cd C:\xampp\htdocs\projects\new-project

Typ onderstaande regel in de CLI om PHPMailer te installeren:

composer require phpmailer/phpmailer

Als dit allemaal goed gegaan is dan zul je in je project een map vinden met de naam vendor en een bestand met de naam composer.json. In de vendor map staan alle pakketten die je voor dit project geïnstalleerd hebt. In composer.json wordt bijgehouden welke pakketten je project nodig heeft. Kijk maar eens in de vendor map en neem eens een kijkje in het bestand composer.json.

Pakket 1: PHPMailer

Maak een php bestand aan in je project, bijvoorbeeld index.php. Om de pakketten in de vendor map automatisch in te laden hoef je slechts deze ene regel in je code te zetten:

require_once 'vendor/autoload.php';

Daarna kun je PHPMailer gebruiken. Hoe dat moet lees je op packagist maar hieronder een voorbeeldje:

<?php

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require_once 'vendor/autoload.php';

$mailer = new PHPMailer();

$mailer->setFrom('from@example.com', 'Mailer');
$mailer->addAddress('joe@example.net', 'Joe User'); 
$mailer->Subject = 'Onderwerp';
$mailer->Body    = 'Een mailtje!';

$mailer->send();
echo 'Bericht is verzonden.';

Pakket 2: Twig

Twig is een razendsnelle en slimme template parser. Installeer Twig met

composer require twig/twig
Twig toepassen

Maak een directory templates. Maak in de directory een bestand index.html.twig met deze inhoud

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Mijn eerste Twig Template</title>
    </head>
    <body>
        <h1>Hallo {{ name }}</h1>
    </body>
</html>

Maak vervolgens in de project root een php bestand (bijvoorbeeld twig.php) met deze inhoud:

<?php

require_once 'vendor/autoload.php';

$loader = new Twig_Loader_Filesystem('templates');
$twig = new Twig_Environment($loader, array(
    'cache' => 'cache',
));

echo $twig->render('index.html.twig', array('name' => 'Frank'));

Composer update

Indien nodig kun je ook pakketten updaten met composer. Zo laat je composer voor alle pakketen updates binnenhalen:

composer update

Maar je kunt ook één specifiek pakket updaten. Bijvoorbeeld:

composer update phpmailer/phpmailer

Packagist

Packagist is de standaard opslagplaats voor alle pakketten die je met Composer kunt installeren. Je vindt er ook een lijst van veel gebruikte pakketen maar je kunt ook zelf pakketten aanbieden.

Reacties

Om een reactie te plaatsen kun je jezelf eenmalig registeren of je kunt hier inloggen.