Ludovic ROLAND

Blog technique sur mes expériences de développeur.

Créer un projet Symfony2 avec Composer

26 avril 2015

Je vous propose aujourd’hui un article un peu particulier car pour la première fois depuis plusieurs mois, il ne concerne pas le développement d’applications mobiles. Il y pas mal de temps, j’avais fait un essai avec Symfony 1.6 que j’avais detesté. Resté sur cette mauvaise impression, je n’ai jamais pris le temps de regarder son successeur, Symfony2, préférant regarder du côté de Laravel, cakePHP ou encore en me lançant dans le développement de mon propre framework : le rolandl PHP Framework.

J’ai récemment découvert et lu de la documentation sur le micro-framework Silex qui utilise les composants de Symfony2. Ce micro-framework ayant attisé ma curiosité, j’ai décidé de laisser une chance à Symfony2 et de m’y pencher un peu plus.

Habitué des gestionnaires de dépendances (Maven, gradle, nuget, etc.), j’ai tout de suite voulu me tourner vers un système identique pour PHP. Je suis alors tombé sur Composer.

Comme je pense être tombé sur tous les problèmes possibles afin de pouvoir créer un projet Symfony2 avec Composer, je vous propose de revenir sur les différentes étapes d’installation des composants et résolutions des problèmes que vous rencontrerez probablement.

Installer Composer

La première étape consiste à installer Composer. Si comme moi vous êtes sur Windows, vous pouvez le télécharger sur le site officiel du projet. Une fois l’installateur téléchargé, lancez-le. Il s’agit d’une installation relativement classique pour Windows, à coup de “Suivant, Suivant, Terminer”.

La seule étape un peu décisive consiste à renseigner le chemin de PHP sur votre machine. Dans mon cas, puisque j’utilise Wamp, il convient de renseigner le chemin dans les binaires de Wamp comme en témoigne la capture d’écran suivante :

Malheureusement, après une tentative d’installation, le soft m’indique l’erreur suivante :

The openssl extension is missing, which means that secure HTTPS transfers are impossible.
If possible you should enable it or recompile php with --with-openssl

Le message est assez explicite : l’extension openSSL n’est pas active dans ma configuration actuelle de PHP. Nous allons donc corriger ça tout de suite

Activer l’extension openSSL

Nous allons donc activer l’extension openSSL et ce à plusieurs endroits pour être certain que tout fonctionne.

Dans un premier temps, nous allons cocher l’extension openSSL au niveau des extensions PHP de Wamp. Pour cela, cliquez sur l’icône de Wamp, puis PHP, puis extensions PHP et cliquez sur php_openssl comme dans la capture d’écran ci-dessous.

Vérifier que l’extension est bien activée en ouvrant le fichier php.ini accessible depuis l’icône Wamp. Pour cela, cliquez sur l’icône de Wamp, puis PHP puis cliquez sur php.ini comme dans la capture d’écran ci-dessous.

Dans le fichier qui s’ouvre, vérifiez que la ligne extension=php_openssl.dll est décommentée, c’est-à-dire qu’elle n’est pas précédée par le caractère ;.

Finalement, ouvrez également le fichier php.ini qui se trouve dans le même dossier que l’exécutable de php (chez moi C:\wamp\bin\php\php5.3.13\php.ini) pour vérifier que la ligne est bien décommentée.

Maintenant que l’extension est activée, vous pouvez relancer l’installation de Composer qui devrait se terminer avec succès.

Création du projet Symfony

Maintenant que Composer est installé, nous allons pouvoir l’utiliser pour créer un nouveau projet Symfony2. La ligne de commande permettant de faire ça est la suivante :

php C:\ProgramData\ComposerSetup\bin\composer.phar create-project symfony/framework-standard-edition Symfony/

Si votre poste est correctement configuré, vous ne devriez pas rencontrer de problème. Si ce n’est pas le cas, comme moi, vous aurez peut-être le droit à des messages d’erreur comme en témoigne la capture d’écran ci-dessous :

Voici présicément les messages que j’obtiens :

Your requirements could not be resolved to an installable set of packages.

Problem 1
- Installation request for sensiolabs/security-checker v2.0.1 -> satisfiable by sensiolabs/security-checker[v2.0.1].
- sensiolabs/security-checker v2.0.1 requires ext-curl * -> the requested PHP extension curl is missing from your system.

Problem 2
- sensiolabs/security-checker v2.0.1 requires ext-curl * -> the requested PHP extension curl is missing from your system.
- sensio/distribution-bundle v3.0.20 requires sensiolabs/security-checker ~2.0 -> satisfiable by sensiolabs/security-checker[v2.0.1].
- Installation request for sensio/distribution-bundle v3.0.20 -> satisfiable by sensio/distribution-bundle[v3.0.20].

Ce qu’il faut retenir de ces messages d’erreur, c’est la phrase suivante :

the requested PHP extension curl is missing from your system.

A l’image de l’extension openssl qui n’était pas activée, nous devons maintenant activer l’extension curl. Pour cela, répétez ce que nous avions fait pour activer l’extension openssl.Dans un premier temps, nous allons cocher l’extension curl au niveau des extensions PHP de Wamp. Pour cela, cliquez sur l’icône de Wamp, puis PHP, puis extensions PHP et cliquez sur php_curl.

Vérifier que l’extention est bien activée en ouvrant le fichier php.ini accessible depuis l’icône Wamp. Pour cela, cliquez sur l’icône de Wamp, puis PHP puis cliquez sur php.ini comme dans la capture d’écran ci-dessous.

Dans le fichier qui s’ouvre, vérifiez que la ligne extension=php_curl.dll est décommentée, c’est-à-dire qu’elle n’est pas précédée par le caractère ;.

Finalement, ouvrez également le fichier php.ini qui se trouve dans le même dossier que l’exécutable de php (chez moi C:\wamp\bin\php\php5.3.13\php.ini) pour vérifier que la ligne est bien décommentée.

Maintenant que l’extension est activée, vous pouvez relancer la ligne de commande qui devrait se terminer avec succès.

Commentaires