Sélectionner une page

Installer et utiliser Composer avec uWamp

Rapide guide pour Composer avec uWamp sous Windows

À propos de ComposerLogo 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.

extension_dir = "ext"

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

2 Commentaires

  1. Theshadoo

    Hello, votre article m’a aidé a y voir plus clair, car ayant eu du faire un update sous wamp afin d’installer la version php 5.4.x et vue tous les changements de versions et l’abandon de wamp pour les addons ça m’a tout pété. J’étais assez furax de tout ce merdié.
    Du coup je suis revenue sous Uwamp non seulement portable mais qui plus est plus stable je trouve et mieux fichu que wamp.
    Concernant les problèmes des php.ini sous wamp ou uwamp c’est à peu près les équivalents on va dire.

    Donc je tenais à vous communiquer mon expérience concernant les arrêts soudain de MySQL sous UwAmp, j’en ai déjà fait les frais, notamment lors de déplacement des fichiers de bases de données afin de voir si je pouvais récupérer mes anciennes bases de données de wamp sous uwamp (catastrophe à moitié).

    En fait lorsque cela arrive il faut vider les log de MySQL et après cela vous relancer uwamp vous n’aurez plus de problème.
    Autre chose aussi que j’ai remarqué, c’est que je lance uwamp en administrateur, j’ai moins de problème sous windows concernant les arrêtes soudain de Mysql.

    Si ça peut vous aider. C’est aussi les sessions sous mysql qui me causaient des problèmes lors du transfert de base de donnée.

    Réponse
  2. Nicolas

    Merci Theshadoo pour ce retour et les bons conseils !
    Je suis de votre avis, et préfère uWamp à WampServer, mais finalement c’est vrai qu’ils restent assez similaires.

    Réponse

Poster le commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *