Não tive problemas para instalar o Symfony 2.2.x usando o Composer, sempre apenas copiei a versão estável em http://symfony.com/download .
composer create-project symfony/framework-standard-edition myproject/ 2.2.1
(Eu tenho o Composer instalado globalmente)
Curioso sobre o 2.3.0-RC1, imaginei que funcionaria bem:
composer create-project symfony/framework-standard-edition mynewerproject/ 2.3.0-RC1
Mas foi desligado pelos seguintes erros:
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].
Preciso ajustar o arquivo composer.json?
Atualização de solução
Estava faltando a extensão php intl que fornece lib-icu
Tão fácil, instale e configure a extensão intl. A partir do PHP 5.3, a extensão Intl é distribuída por padrão, mas algumas distribuições, como o MAMP, não têm Intl, então você precisará adquiri-lo. Eu usei PEAR :
Meus passos:
- Instale a extensão internacional (mantida pela PECL):
$ pear install pecl/intl
- você pode ter que adicionar o canal pecl à pera primeiro. - Se você usa MAMP e nunca trabalhou com pear / pecl, verifique a útil postagem de lullabot no blog ; O MAMP não vem com o código-fonte php, então você deve baixar o código-fonte para sua versão php e mover o código-fonte para
/Applications/MAMP/bin/php/php[version]/include/php
(conforme abordado na postagem do blog) - O PEAR não conseguiu encontrar meu php.ini, então tive que adicioná-lo manualmente
extension=intl.so
ao php.ini. No MAMP, você pode editar o php.ini facilmente acessando Arquivo> Editar modelo> php. [Versão] .ini
Linha de comando:
- Ao usar o Composer ou o console CLI do Symfony, você também precisará do Intl e, uma vez que o
php
CLI geralmente usa um diferente,php.ini
você desejará adicionar a diretiva de extensão lá também. Para encontrar o php.ini da CLI, basta$ php -i |grep php\.ini
descobrir o caminho do arquivo e adicionarextension=intl.so
a esse php.ini também. - Para verificar se o Intl está instalado, você pode
$ php -m
verificar os módulos disponíveis.
php
symfony
composer-php
Mark Fox
fonte
fonte
Respostas:
atualize sua extensão php-intl , é daí que vem o erro icu!
verifique se a extensão está habilitada e configurada corretamente no php.ini também.
(dica: php-cli às vezes usa um php.ini diferente)
php.ini
verifique seu
phpinfo()
ANDphp -m
em seu terminal se a extensão foi habilitada com sucesso.Verifique suas versões intl atuais do php com:
atenção: não é mais necessário ( symfony 2.3, entretanto, foi lançado )
adicione o sinalizador de estabilidade mínima @dev ou @rc à sua dependência desta forma:
A estabilidade padrão no composer é estável que o branch do symfony 2.3 não é atualmente (é @rc). Leia mais um sinalizador de estabilidade aqui .
fonte
INTL::…
falha. Mas, posso ver via phpinfo () no navegador que Intl está instalado e a versão ICU é 49.x. No entanto, o Composer ainda falha com a mesma mensagem de erro.php -m
NÃO vejo o intl. Eu sei que funciona no servidor web, mas não é reconhecido na linha de comando. Então ... eu tenho que adicioná-lo à linha de comando?php -m
ainda não reconheço do CLI?Muitos aplicativos suportarão apenas "en" locale e não precisarão de recursos de tradução ou php-intl. Se este é você, ou você não pode instalar php-intl em seu servidor, você pode adicionar explicitamente symfony / icu ~ 1.0 ao seu
composer.json
. 1.0 não requer php-intl, enquanto 1.1+ requer.Se você não precisa de recursos de tradução:
Sem esta declaração e tentando instalar o symfony / symfony 2.3 Composer pode tentar instalar o symfony / icu ~ 1.2, o que exigiria que você instale o php-intl.
Isso é explicitamente coberto mais extensivamente na documentação do Symfony Intl Component em "ICU and Deployment Problems".
fonte
"require":{"symfony/symfony": "v2.3.3"}}
resultado: ´Carregando repositórios do composer com informações do pacote Instalando dependências (incluindo require-dev) - Instalando psr / log (1.0.0) Baixando: 100% - Instalando twig / twig (v1.13.2) Baixando: 100% - Instalando doctrine / common (2.3.0) Baixando: 100% - Instalando symfony / symfony (v2.3.3) Baixando: 100% - Instalando symfony / icu (v1.0.0) Baixando: 100% Gravando arquivo de bloqueio Gerando arquivos autoloadcomposer.lock
é compartilhado entre ambientes com diferentes versões (ou ausência) de Intl.Uma solução em relação a este ou problemas semelhantes pode ser encontrada aqui: ICU e problemas de implantação
O comportamento do compositor deve ser inteligente ao selecionar o componente icu certo:
Não deve haver (teoricamente) nenhum erro ao instalar o symfony 2.3. sem extensão intl.
Mas você pode ficar preso quando seu ambiente de desenvolvimento for diferente de seu servidor de produção, conforme mencionado neste artigo:
Quando você não tem acesso root ao seu servidor de produção, você pode consertá-lo conforme mencionado neste artigo. (ajustando composer.json)
Espero que esta informação adicional tenha ajudado, pois me ajudou neste caso especial com diferentes ambientes.
fonte
Mac OS Mavericks vem com PHP 5.4.17 sem intl. Para conseguir isso, você terá que seguir estas etapas:
fonte
Sei que essa resposta pode não ser a resposta correta para o problema dessa pessoa, mas foi a solução para o meu problema com o mesmo título. Consegui consertar esse problema para mim habilitando a extensão intl no php.ini e atualizando o composer.
Atualizando o compositor.
Remova o comentário desta linha (em php.ini):
E também remova o comentário dessas duas linhas abaixo [intl] em (php.ini):
E reinicie o apache2, é claro. :)
Informação adicional:
Se estiver usando mac e php instalado com o Homebrew, siga estas etapas:
(PHP 5.4)
(PHP 5.5)
Reinicie o apache.
fonte
Uma solução melhor é corrigir seu composer.json para a versão exigida pelo servidor de produção. Primeiro, determine a versão ICU no servidor: 1 2
Em seguida, corrija o componente Icu em seu arquivo composer.json para uma versão correspondente:
Defina a versão como "1.0. " Se o servidor não tiver a extensão intl instalada; "1.1. " Se o servidor for compilado com ICU 4.2 ou inferior.
Finalmente, corra
em sua máquina de desenvolvimento, teste extensivamente e implante novamente. A instalação das dependências agora será bem-sucedida.
fonte