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.sozu 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
phpCLI 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\.iniden Dateipfad ermitteln und hinzufügenextension=intl.sodieser php.ini . - Um zu überprüfen, ob Intl installiert ist, können Sie
$ php -mdie verfügbaren Module überprüfen.