::cakephpをcomposerでインストールしようとしたらintlがなかったのでインストールした件

/ , , / WEB制作・開発

cakephp 3.xのチュートリアルをcomposerでインストールしようとしたらIntlがないと怒られてエラーになった際の対処方法についてメモ。正直かなりはまったので同様の問題で困っている人のためにメモしておきます。

composerのインストールは以下の手順で行った。
http://book.cakephp.org/3.0/en/tutorials-and-examples/blog/blog.html

環境は以下の通り

  • OS X Yosemite 10.10.5
  • MAMP
  • PHP 5.5.10  

   

 

Intlとはなんぞや?

http://php.net/manual/ja/intro.intl.phpより引用

国際化用拡張モジュール (これ以降では Intl と略します) は » ICU ライブラリのラッパーです。 PHP プログラマが、» UCA 準拠の照合順序 (collation) や日付/時刻/数値/通貨のフォーマットを扱えるようにします。

ICU の API に従って作成されているので、 C/C++ や Java で ICU を使ったことがあるかたは簡単に PHP の API も使えることでしょう。 また、ICU のドキュメントを参考にすればさまざまな ICU の関数について知ることができます。

Intl はいくつかのモジュールで構成されており、 各モジュールが対応する ICU API を公開しています。

    • Collator: ロケールに応じた適切な並び順を考慮して、文字列の比較を行います。
    • Number Formatter: 各地域固有の書式、あるいは指定した規則に基づいて数値を表示したり、 文字列を数値として解釈したりします。
    • Message Formatter: メッセージ関連のデータ (数値や日付など) をパターンやロケールにあわせて適切にフォーマットしたり、 メッセージをパースしてデータを取り出したりします。
    • Normalizer: テキストに対して Unicode の正規化を行ったり、 指定した文字列が正規化済みかどうかを調べたりします。
    • Locale: ロケール識別子を扱うための機能を提供します。 たとえばロケール識別子のパースや作成、検索などを行います。

 

 

Composerのインストール

ここは問題なく無事に完了。

 

 

CalePHPのProject作成でintlのエラーが発生

ここで、the requested PHP extension intl is missing from your system.というエラーが発生した。

以下のコマンドでインストールされているか確認するとHITなし。

  じゃあ、intlとやらをインストールしようと試みたところネット上ではたくさんの解決方法があったのだが、自分の環境には合わずになかなか解決できなかった。色々と試した結果、自分が参考にしたサイトは以下で、手順通りに進めたら無事にインストールができた。

Installing Intl package on OSX Lion

160102_photo001

 

 

 

Step 1. HomebrewとICUをインストール

上記を実行したら、?  /usr/local/Cellar/icu4c/56.1: 244 files, 63.7Mと表示された

 

 

Step 2. PECLでIntlをインストール

 

 

Step 3. php.iniにextension=intl.soを登録

  php.iniファイルに以下を追加

  設定の反映

※もしphp.iniファイルを作っていなければ、/etc直下にphp.ini.defaultがあるはずなので、コピーしてphp.iniファイルを作る必要がある。

ファイルがあるがどうかを確認する↓↓

  cpコマンドでphp.iniファイルを作成する↓↓

 

 

Step 4. 確認

intlと表示されれば無事にインストール完了です。これで無事にcomposerでcakekphpをインストールすることができました。お疲れさまでした。

その他にもこの辺が参考になった。
How to Enable INTL PHP Extension for MAMP on OSX 10.9.2

SNS SHARE

RELATED POSTS

LEAVE A REPLY