114

Composer を使用して Symfony 2.2.x をインストールする際に問題はありませんでした。常に安定バージョンをhttp://symfony.com/downloadにコピーしました。

composer create-project symfony/framework-standard-edition myproject/ 2.2.1

(私はグローバルに Composer をインストールしています
)

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 が含まれていないため、入手する必要があります。私はPEARを使用しました:

私の手順:

  • Intl 拡張機能をインストールします (PECL によって維持されます): $ pear install pecl/intl— 最初に pear に pecl チャネルを追加する必要がある場合があります。
  • MAMP を使用していて、pear/pecl を使用したことがない場合は、 lullabot の役立つブログ投稿を確認してください。MAMP には php ソースが同梱されていないため、php バージョンのソースをダウンロードして、ソースを移動する必要があります/Applications/MAMP/bin/php/php[version]/include/php(ブログ投稿で説明されているように)。
  • PEAR は私の php.ini を見つけることができなかったので、手動でextension=intl.sophp.ini に追加する必要がありました。MAMP では、[ファイル] > [テンプレートの編集] > [php.[バージョン].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、利用可能なモジュールを確認します。
4

6 に答える 6

21

多くのアプリケーションは「en」ロケールのみをサポートし、翻訳機能や php-intl は必要ありません。これがあなたの場合、またはサーバーに php-intl をインストールできない場合は、明示的にsymfony/icu ~1.0 を .xml に追加できますcomposer.json。1.0 は php-intl を必要としませんが、1.1+ は必要とします。

翻訳機能が必要ない場合:

$ php bin/composer.phar require symfony/icu ~1.0

この宣言なしで symfony/symfony 2.3 をインストールしようとすると、Composer は symfony/icu ~1.2 をインストールしようとする可能性があり、php-intl をインストールする必要があります。

これは、 Symfony Intl コンポーネントのドキュメントの「ICU と展開の問題」の下で、より広範に明示的にカバーされています。

于 2013-07-17T14:08:38.667 に答える
9

Mac OS Mavericks には、intl なしの PHP 5.4.17 が付属しています。これを取得するには、次の手順に従う必要があります。

brew install icu4c
sudo pecl install intl 
The path to the ICU libraries and headers is: /usr/local/opt/icu4c/
Edit /etc/php.ini and add extension=intl.so to the end.
于 2013-11-12T22:30:41.090 に答える
6

この回答がこの人の問題に対する正しい回答ではないことは承知していますが、同じタイトルの私の問題に対する解決策でした。php.ini で intl 拡張機能を有効にし、composer をアップグレードすることで、この問題を自分で修正できました。

コンポーザーのアップグレード。

php composer.phar self-update

この行からコメントを削除します (php.ini 内):

extension=php_intl.dll

また、(php.ini) の [intl] の下にある次の 2 行のコメントも削除します。

[intl]
intl.default_locale = en_utf8
intl.error_level = E_WARNING

もちろん、apache2を再起動します。:)

追加情報:

Mac を使用し、Homebrew でインストールされた php を使用している場合は、次の手順に従います。

(PHP5.4)

$ brew install php54-intl

(PHP5.5)

$ brew tap josegonzalez/php
$ brew tap homebrew/dupes
$ brew install josegonzalez/php/php55-intl
$ sudo apachectl restart

アパッチを再起動します。

于 2013-05-26T23:24:16.443 に答える