Ich hatte keine Probleme bei der Installation von Symfony 2.2.x mit Composer. Ich habe immer nur die stabile Version unter http://symfony.com/download kopiert .
composer create-project symfony/framework-standard-edition myproject/ 2.2.1
(Ich habe Composer global installiert.)
Neugierig auf 2.3.0-RC1 Ich dachte, das würde reibungslos funktionieren:
composer create-project symfony/framework-standard-edition mynewerproject/ 2.3.0-RC1
Wurde aber durch folgende Fehler heruntergefahren:
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].
Muss ich die Datei composer.json optimieren?
Lösungsupdate
Mir fehlte die PHP-Intl-Erweiterung, die bietet lib-icu bereitstellt
So einfach, installieren und konfigurieren Sie die intl-Erweiterung. Ab PHP 5.3 ist die Intl-Erweiterung standardmäßig verteilt, aber einige Distributionen, wie MAMP, haben kein Intl, sodass Sie es erwerben müssen. Ich habe PEAR benutzt :
Meine Schritte:
- Installieren Sie die Intl-Erweiterung (von PECL verwaltet):
$ pear install pecl/intl
- Möglicherweise müssen Sie zuerst den Pecl-Kanal zu Pear hinzufügen. - Wenn Sie MAMP verwenden und noch nie mit Pear / Pecl gearbeitet haben, lesen Sie den hilfreichen Blog-Beitrag von lullabot . MAMP wird nicht mit der PHP-Quelle geliefert, daher müssen Sie die Quelle für Ihre PHP-Version herunterladen und in die Quelle verschieben
/Applications/MAMP/bin/php/php[version]/include/php
(wie im Blog-Beitrag beschrieben). - PEAR konnte meine php.ini nicht finden, daher musste ich sie manuell
extension=intl.so
zu php.ini hinzufügen . In MAMP können Sie die php.ini einfach bearbeiten, indem Sie zu Datei> Vorlage bearbeiten> php. [Version] .ini gehen
Befehlszeile:
- Wenn Sie die Konsolen-CLI von Composer oder Symfony verwenden, benötigen Sie auch Intl. Da die
php
CLI normalerweise eine andere verwendetphp.ini
, möchten Sie dort auch die Erweiterungsanweisung hinzufügen. Um die php.ini Ihrer CLI zu finden, müssen Sie lediglich$ php -i |grep php\.ini
den Dateipfad ermitteln und hinzufügenextension=intl.so
dieser php.ini . - Um zu überprüfen, ob Intl installiert ist, können Sie
$ php -m
die verfügbaren Module überprüfen.