Catégorie: Développement

Gérez vos dépendances avec composer sur Drupal 7

Auteur(s) de l'article

Simon
Simon
Composer permet de gérer vos dépendances PHP. Vous retrouverez sur packagist.org des centaines de librairies utilisables pour vos projets PHP. Mais comment tirer parti de ces librairies avec Drupal? Comment les intégrer à vos modules?
Le problème est plus compliqué qu’il n’y parait. En effet, Drupal a sa propre gestion de dépendance pour ses modules. Comment faire quand chaque module à son propre fichier de dépendances (composer.json)?

Composer manager

Heureusement, la communauté s’est déjà penché sur le problème et nous avons aujourd’hui une solution qui, loin d’être parfaite, fonctionne plutôt bien: composer manager.
Composer manager fait deux choses:
  • Génèrer un fichier composer.json unique contenant l’ensemble des dépendances. Pour cela il recherche dans chaque module un fichier composer.json et les fusionnes ensemble.
  • Injecter l’autoloader dans un hook_init
Bien que composer manager propose une interface graphique, nous allons voir ici comment l’utiliser avec drush en ligne de commande. Cette approche permet de générer notre fichier composer.json dans un répertoire inaccessible par votre serveur web.

Utiliser composer manager

Configurer composer manager

Il est recommandé de modifier le chemin du dossier vendor et du fichier composer.json généré. Les valeurs recommandées sont les suivantes:
// settings.php $conf['composer_manager_vendor_dir'] = '../vendor'; $conf['composer_manager_file_dir'] = '../';
Vous pouvez également gérer ces options depuis l’interface.

Ajouter composer.json à votre module

La première étape consiste à ajouter votre composer.json à la racine de votre module. Ici nous allons ajouter goute:
{ "require": { "fabpot/goutte": "~2.0" } }

Générer un composer.json global

Si vous activez un module avec drush en composer manager, vous proposera automatiquement de mettre à jour le fichier composer.json global.
Il vous est aussi possible de générer le fichier à tout moment via
drush composer-json-rebuild
Pour ensuite à la racine de votre projet Drupal lancer
composer install
Ce qui téléchargera les dépendances dans le dossier vendors.

Utiliser votre librairie

C’est très simple. Vus que l’autoloader est chargé automatiquement il suffit d’instancier la class qui vous intéresse ici
$client = new Goutte\Client();
Si vous souhaiter accéder à votre class avant que hook_init soit exécuté vous pouvez charger l’autoloader manuellement
use Goutte; $loader = \ComposerAutoloaderInitComposerManager::getLoader(); Client::registerLoader(array($loader, 'loadClass'));
À vous le meilleur des deux mondes!

Continuer ma lecture

Auteur(s) de l'article

Basile
Basile

RayCast, à 2 clics de tout

Repos GitHub, pull requests, historique du presse-papiers… Et si tout cela tenait dans un seul raccourci clavier ?
Repos GitHub, pull requests, historique du presse-papiers… Et si tout cela tenait dans un seul raccourci clavier ?
Logo Raycast

Auteur(s) de l'article

Anthony
Anthony

Smashing Conference Freiburg 2026

Retour à Freiburg pour la Smashing Conference 2026: l'IA et les design systems, du CSS et du HTML très techniques, et des talks plus humains sur l'équipe et la posture. Voici ce qu'on en retient.
Retour à Freiburg pour la Smashing Conference 2026: l'IA et les design systems, du CSS et du HTML très techniques, et des talks plus humains sur l'équipe et la posture. Voici ce qu'on en retient.
Affiche de la Smashing Conference Freiburg 2026

Auteur(s) de l'article

Marc
Marc

Le prix du logiciel c’est surtout : qui possède le problème

La responsabilité et la confiance Payer pour un logiciel, ce n’est pas simplement acheter une solution clé en main. C’est bien plus que ça. C’est déléguer une partie de notre […]
La responsabilité et la confiance Payer pour un logiciel, ce n’est pas simplement acheter une solution clé en main. C’est bien plus que ça. C’est déléguer une partie de notre […]
Le prix du logiciel c’est surtout : qui possède le problème