Site icon baudet.me

Installer et utiliser Composer avec uWamp

Rapide guide pour Composer avec uWamp sous Windows

À propos de Composer

Composer permet de gérer les dépendances de votre application PHP, à la manière de PEAR ou de PECL, mais beaucoup plus simplement et clairement.

Parmi ses avantages, on soulèvera :

  1. L’accès en ligne de commande au serveur de production n’est pas nécessaire
  2. La gestion des dépendances se fait indépendamment pour chaque projet, donc finies les incompatibilités de librairies sur votre système
  3. La gestion facilitée des versions des dépendances de votre application

De plus, il intègre un autoloader que l’on peut réutiliser dans ses propres projets afin de ne pas avoir à inclure toutes ses classes PHP au début de chaque fichier.

Installation de Composer

Sous Windows, il faut simplement télécharger l’installeur depuis le site officiel, et l’installer. Vous devez seulement avoir un environnement Apache, PHP et MySQL installé auparavant. Dans ce guide, on part du point de vue que l’on veut utiliser uWamp.

Étapes supplémentaires avec uWamp

Si vous utilisez uWamp, l’installeur de Composer aura du mal à trouver le fichier php.ini, même si vous avez ajouté le dossier de PHP à votre PATH, car il n’existe juste pas ! L’installeur vous affichera une erreur concernant l’activation de l’extension OpenSSL de PHP.

Pour résoudre ce problème, allez dans le dossier de la version de PHP utilisée par uWamp. Copiez ensuite le fichier php_initial.ini dans le même dossier et renommez-le php.ini.

Vérifiez ensuite dans ce nouveau php.ini que la variable extension_dir est settée à “ext” comme ci-après, et vous pourrez installer Composer normalement.

Merci beaucoup à Math43 pour sa solution !

Utilisation de Composer

Une fois que Composer est installé, il faut se rendre en ligne de commande dans le dossier où nous allons installer notre application, puis saisir :

composer init

Cela commencera un dialogue interactif de création du fichier composer.json, qui indiquera à Composer les informations dont il a besoin pour fonctionner.

Vous pouvez directement ajouter des dépendances durant ce dialogue. Ces dernières peuvent être parcourues et sélectionnées sur https://packagist.org, mais le dialogue vous permet aussi d’effectuer des recherches dans les packages disponibles.

Dans la dernière phase du dialogue, chose très utile : on peut inclure des librairies uniquement pour la version de développement de notre application, comme PHP Unit pour effectuer les tests unitaires.

Une fois que le fichier composer.json a été créé et contient toutes les dépendances dont nous aurons besoin, il suffit de saisir :

composer install

pour télécharger les dépendances spécifiées.

Changements manuels dans composer.json

Il est possible de modifier à la main le fichier composer.json, mais il faudra ensuite lancer la commande suivante pour mettre à jour les dépendances :

composer update

Utilisation de l’autoloader dans nos propres classes

Il faut pour cela déclarer un namespace dans nos classes qui corresponde à l’arborescence des fichiers, puis de déclarer une propriété “autoload” dans composer.json comme suit :

{
    "name": "mon appli",
    ...
    "require": ...,
    "autoload": {
        "psr-4" : {"App\\" : "App"}
    }
}

Ainsi, j’aurai un dossier App qui contiendra toutes les classes de mon application. J’aurai simplement besoin de nommer mes namespaces en commençant par “App…” puis de spécifier leur emplacement dans les répertoires de mon app.

Pour utiliser mes classes, je les appelerai en indiquant

use App\Helper\Form;

au début de mon fichier. Facile !

Conseil d’utilisation avec git

Mettez tout ce qui est contenu dans le dossier “vendor” dans le .gitignore, afin
d’éviter d’avoir à synchroniser toutes ces librairies dans votre repo, surtout quand
un “composer install” peut faire l’affaire.

Erreurs lors de l’utilisation de uWamp

Parfois, le serveur MySQL de uWamp cesse de fonctionner sans que j’arrive à me l’expliquer. Dans ce cas, et si aucun autre moyen n’a fonctionné pour ramener le serveur incriminé à la vie, la réinstallation de uWamp a résolu le problème.

Sources

Quitter la version mobile