我使用 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 扩展
如此简单,安装和配置 intl 扩展。自 PHP 5.3 起,默认分发 Intl 扩展,但某些分发,如 MAMP,没有 Intl,因此您需要获取它。我用梨:
我的步骤:
- 安装 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 通常使用不同的 CLI,您也需要php.ini
在其中添加扩展指令。要找到 CLI 的 php.ini,只需$ php -i |grep php\.ini
找到文件路径并将其添加extension=intl.so
到该 php.ini 即可。 - 要检查是否安装了 Intl,您可以
$ php -m
检查可用模块。