Je n'ai eu aucun problème pour installer Symfony 2.2.x à l'aide de Composer, j'ai toujours simplement copié la version stable à l'adresse suivante http://symfony.com/download .
composer create-project symfony/framework-standard-edition myproject/ 2.2.1
(J'ai installé Composer de manière globale)
Curieux de connaître la 2.3.0-RC1, j'ai pensé que cela se passerait bien :
composer create-project symfony/framework-standard-edition mynewerproject/ 2.3.0-RC1
Mais j'ai été arrêté par les erreurs suivantes :
Your requirements could not be resolved to an installable set of packages.
Problem 1
- symfony/icu v1.2.0-RC1 requires lib-icu >=4.4 -> the requested linked library icu has the wrong version installed or is missing from your system, make sure to have the extension providing it.
- symfony/icu v1.1.0-RC1 requires lib-icu >=3.8 -> the requested linked library icu has the wrong version installed or is missing from your system, make sure to have the extension providing it.
- symfony/symfony v2.3.0-RC1 requires symfony/icu >=1.0,<2.0 -> satisfiable by symfony/icu[v1.1.0-RC1, v1.2.0-RC1].
- Installation request for symfony/symfony 2.3.* -> satisfiable by symfony/symfony[v2.3.0-RC1].
Dois-je modifier le fichier composer.json ?
Mise à jour de la solution
Il me manquait le extension php intl qui prévoit lib-icu
C'est très simple, installez et configurez l'extension intl. Depuis PHP 5.3, l'extension Intl est distribuée par défaut, mais certaines distributions, comme MAMP, n'ont pas Intl, vous devrez donc l'acquérir. J'ai utilisé PEAR :
Mes pas :
- Installez l'extension Intl (maintenue par PECL) :
$ pear install pecl/intl
- vous devrez peut-être ajouter le canal pecl à pear d'abord. -
Si vous utilisez MAMP et n'ont jamais travaillé avec le contrôle de poire/pecl Lullabot's helpful blog post ; MAMP n'est pas livré avec les sources de php, vous devez donc téléchargez la source de votre version de php et déplacer la source dans
/Applications/MAMP/bin/php/php[version]/include/php
(comme indiqué dans l'article de blog) - PEAR ne pouvait pas trouver mon php.ini, j'ai donc dû ajouter manuellement
extension=intl.so
dans le php.ini. Dans MAMP, vous pouvez modifier facilement le php.ini en allant dans Fichier > Modifier le modèle > php.[version].ini
Ligne de commande :
- Si vous utilisez Composer ou la console CLI de Symfony, vous aurez également besoin d'Intl et, puisque l'option
php
CLI utilise généralement un autrephp.ini
vous voudrez ajouter la directive d'extension là aussi. Pour trouver le php.ini de votre CLI, faites simplement$ php -i |grep php\.ini
pour découvrir le chemin du fichier et ajouterextension=intl.so
à ce php.ini également. - Pour vérifier si Intl est installé, vous pouvez effectuer les opérations suivantes
$ php -m
pour vérifier les modules disponibles.