Bibliothèques externes


1Présentation

Quand vous développez un site web ou une API, il est fréquent d'utiliser des biliothèques de fonction pour effectuer certains traitements (pour éviter de tout développer soi-même).

Temma est très souple et s'adapte à la manière dont vous voulez charger ces bibliothèques. De manière générale, on considère qu'il est possible de charger les bibliothèques : en les recopiant dans le répertoire lib/, ou en utilisant le gestionnaire de dépendances Composer.


2Copier la bibliothèque

Si la bibliothèque se présente comme un ensemble de fichiers .php ou sous la forme d'un fichier .phar, vous pouvez copier le(s) fichier(s) dans le répertoire lib/ du projet.

2.1Fichiers .php

Si vous placez des fichiers .php dans le répertoire lib/, et qu'ils contiennent des objets en respectant la norme PSR-4, ils seront pris en charge automatiquement par l'autoloader de Temma.

Par exemple, l'objet \Skywalker\Luke doit être enregistré dans le fichier lib/Skywalker/Luke.php, et peut être instancié directement :

$luke = new \Skywalker\Luke();

Si par contre les fichiers ne respectent pas la norme PSR-4, vous devrez les inclure explicitement avant de pouvoir utiliser les objets et fonctions qu'ils contiennent.

Par exemple, si le fichier lib/skywalker/famille.php contient l'objet \Skywalker\Luke, il faudra l'inclure avant d'instancier l'objet :

<?php

require_once('skywalker/famille.php');

// suite du code

$luke = new \Skywalker\Luke();

2.2Fichier .phar

Si vous placez un fichier .phar directement dans le répertoire lib/, tous vos objets qui utilisent le contenu de ce fichier devront l'inclure :

<?php

require_once("une_bibliotheque.phar");

Si vous avez placé le fichier .phar dans un sous-répertoire, vous devez inclure tout le chemin en dessous lib/ :

<?php

require_once("chemin/vers/une_bibliotheque.phar");

3Utilisation de Composer

Composer est le gestionnaire de dépendance communément utilisé dans les projets PHP. Il permet de charger facilement les bibliothèques qui sont déclarées sur le service Packagist.

En partant du principe que vous avez déjà installé Composer, vous pouvez créer un fichier composer.json à la racine de votre projet, et y lister les bibliothèques qui doivent être installées :

{
    "require": {
        "lib1": ">=1.0.0",
        "lib2": "2.*"
    }
}

Ensuite, pour que Composer télécharge les bibliothèques listées (ainsi que leurs éventuelles dépendances), exécutez la commande : composer update

Si vous avez installé Composer sous forme de fichier .phar, vous devrez exécuter la commande php composer.phar update

Composer placera les fichiers téléchargés dans le répertoire vendors/.

Si des bibliothèques ont été installées avec Composer, Temma chargera automatiquement l'autoloader de Composer, et les objets des bibliothèques seront instanciables directement.