Nie miałem problemów z instalacją Symfony 2.2.x przy użyciu Composera, zawsze kopiowałem stabilną wersję ze strony http://symfony.com/download .
composer create-project symfony/framework-standard-edition myproject/ 2.2.1
(Mam zainstalowanego Composera na całym świecie)
Zaciekawiony 2.3.0-RC1 Pomyślałem, że wszystko pójdzie gładko:
composer create-project symfony/framework-standard-edition mynewerproject/ 2.3.0-RC1
Ale został zamknięty przez następujące błędy:
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].
Czy muszę poprawić plik composer.json?
Aktualizacja rozwiązania
Brakowało mi rozszerzenia php intl, które zapewnia lib-icu
Tak łatwo, zainstaluj i skonfiguruj rozszerzenie intl. Od PHP 5.3 rozszerzenie Intl jest dystrybuowane domyślnie, ale niektóre dystrybucje, takie jak MAMP, nie mają Intl, więc musisz je zdobyć. Użyłem PEAR :
Moje kroki:
- Zainstaluj rozszerzenie Intl (obsługiwane przez PECL):
$ pear install pecl/intl
- być może będziesz musiał najpierw dodać kanał pecl do pear. - Jeśli używasz MAMP i nigdy nie pracowałeś z gruszką / peclem, sprawdź pomocny post na blogu lullabot ; MAMP nie jest dostarczany ze źródłem php, więc musisz pobrać źródło swojej wersji php i przenieść je do
/Applications/MAMP/bin/php/php[version]/include/php
(jak opisano w poście na blogu) - PEAR nie mógł znaleźć mojego php.ini, więc musiałem ręcznie dodać
extension=intl.so
do php.ini. W MAMP możesz łatwo edytować php.ini, przechodząc do Plik> Edytuj szablon> php. [Wersja] .ini
Wiersz poleceń:
- Podczas korzystania z Composera lub Konsoli CLI Symfony będziesz również potrzebował Intl, a ponieważ
php
CLI zwykle używa innegophp.ini
, będziesz chciał dodać tam również dyrektywę rozszerzenia. Aby znaleźć php.ini swojego CLI, po prostu zrób,$ php -i |grep php\.ini
aby znaleźć ścieżkę pliku i dodać równieżextension=intl.so
do tego php.ini. - Aby sprawdzić, czy Intl jest zainstalowany, możesz
$ php -m
sprawdzić dostępne moduły.