使用Composer安装Symfony 2.2.x时没有任何问题,我一直只是在http://symfony.com/download上复制了稳定版本。
composer create-project symfony/framework-standard-edition myproject/ 2.2.1
(我在全球范围内安装了Composer)
对2.3.0-RC1感到好奇,我认为这样做会很顺利:
composer create-project symfony/framework-standard-edition mynewerproject/ 2.3.0-RC1
但是由于以下错误而关机:
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].
我需要调整composer.json文件吗?
解决方案更新
我缺少提供lib-icu的php intl扩展名
如此简单,安装和配置国际扩展。从PHP 5.3开始,默认情况下分发Intl扩展,但是某些分发(例如MAMP)没有Intl,因此您需要获取它。我用了PEAR:
我的步骤:
- 安装Intl扩展名(由PECL维护):
$ pear install pecl/intl
—您可能必须首先将pecl通道添加到pear。 - 如果您使用MAMP且从未使用过pear / pecl,请查看lullabot的有用博客文章;MAMP不随PHP源一起提供,因此您必须下载PHP版本的源并将其移入
/Applications/MAMP/bin/php/php[version]/include/php
(如博客文章中所述) - PEAR找不到我的php.ini,因此我不得不手动添加
extension=intl.so
到php.ini。在MAMP中,您可以转到文件>编辑模板> php。[version] .ini来轻松编辑php.ini。
命令行:
- 使用Composer或Symfony的控制台CLI时,您还需要Intl,并且由于
php
CLI通常使用其他命令行,因此您也php.ini
想在其中添加扩展指令。要找到CLI的php.ini,只需$ php -i |grep php\.ini
查找文件路径并将其添加extension=intl.so
到该php.ini中即可。 - 要检查是否安装了Intl,可以
$ php -m
检查可用的模块。