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.