[解決済み] Symfony 2.3.x を Composer 経由でインストールした際の lib-icu 依存性の問題
質問
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ファイルをいじる必要があるのでしょうか?
ソリューションの更新
が抜けていたので php intl 拡張 を提供する lib-icu
とても簡単で、intl 拡張をインストールして設定します。PHP5.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.so
をphp.iniに追加する必要がありました。MAMPでは、ファイル > テンプレート編集 > php.[version].ini で簡単にphp.iniを編集することができます。
コマンドラインです。
-
Composer もしくは symfony のコンソール CLI を使う場合、Intl も必要で、そのために
php
CLI は通常異なるphp.ini
を使用するので、そこにも extension ディレクティブを追加することになります。CLI の php.ini を見つけるには、単に次のようにします。$ php -i |grep php\.ini
を実行してファイルパスを調べ、そこにextension=intl.so
をその php.ini にも追加します。 -
Intl がインストールされているかどうかを確認するには、次のようにします。
$ php -m
を実行して、利用可能なモジュールを確認します。
どのように解決するのですか?
を更新してください。 php-intl を更新してください。icuエラーが発生するのはそこからです。
sudo aptitude install php5-intl // i.e. ubuntu
brew install icu4c // osx
php.iniで拡張機能が有効になっているか、また正しく設定されているかを確認してください。
( ヒント: php-cli は時々異なる php.ini を使用します )
php.ini
extension=intl.so ; *nix
extension=php_intl.dll ; windows
[intl]
intl.default_locale = en_utf8
intl.error_level = E_WARNING
を確認します。
phpinfo()
と
php -m
を実行すると、拡張機能が正常に有効化されます。
phpから現在のintlのバージョンを確認します。
Intl::getIcuVersion();
Intl::getIcuDataVersion();
注意:もう必要ありません ( symfony 2.3 はリリースされました。 )
のように、依存関係に最小安定性フラグ@devまたは@rcを追加してください。
composer create-project symfony/framework-standard-edition mynewerproject/ 2.3.*@dev
composerのデフォルトの安定性はstableで、symfony 2.3のブランチは現在stableではありません( @rcです)。安定性のフラグについてもっと読む はこちら .
関連
-
[解決済み】Notice: 非オブジェクトのプロパティを取得しようとしているエラー
-
[解決済み】接続の取得に失敗しました: php_network_getaddresses: getaddrinfo failed: 名前またはサービスが不明
-
[解決済み] PHP & MySQL: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given [重複] PHP & MySQL: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given.
-
[解決済み] 整形されていない数値が発生しました。
-
[解決済み】stdClassクラスのオブジェクトが文字列に変換されない。
-
[解決済み】Chrome net::ERR_INCOMPLETE_CHUNKED_ENCODING エラーが発生しました。
-
[解決済み】「Fatal error: Class 'MySQLi' not found "を解決するには?
-
[解決済み] 警告:mysqli_fetch_array()は、パラメータ1がmysqli_resultであることを期待する、オブジェクトはで指定された。
-
[解決済み】count()パラメータは配列かlaravelのcountableを実装したオブジェクトでなければならない
-
MacでPHPを実行した際に、メモリサイズが134217728バイトも消費される問題の解決方法について
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 整形されていない数値が発生しました。
-
[解決済み】PHP定数「PHP_EOL」はいつ使うの?
-
[解決済み】ディレクトリ内のファイル数を数える PHP
-
[解決済み】未定義のメソッド mysqli_stmt::get_result を呼び出す。
-
[解決済み】 libapache2-mod-php7 パッケージが見つからない。
-
[解決済み】既に開始されているPHPセッション【重複あり
-
[解決済み] [Solved] Fatal error: 非オブジェクトのメンバ関数fetch_assoc()の呼び出し [重複]。
-
[解決済み] 入力ファイルが指定されていない
-
[解決済み] PHP - ストリームを開くのに失敗しました : そのようなファイルまたはディレクトリがありません。
-
MacでPHPを実行した際に、メモリサイズが134217728バイトも消費される問題の解決方法について