
こんにちは。ふわふわしょうちゃんです。
Cakephp4を使用しようとしましたが、XAMPPのデフォルトでは、intl拡張モジュールが有効になっていません。
今回はintlを有効にしてみたいと思います。
intl拡張モジュールとは
intl拡張モジュールとは、「国際化用拡張モジュール」です。
詳しく知りたい方はコチラ。
https://www.php.net/manual/ja/intro.intl.php
ロケール関連の操作を行う時に使うみたいですね。良く聞くのは「タイムゾーン」とかですかね。
Cakephpはこのモジュールを使用しています。
Cakephpを動かすのに、三つの拡張モジュールが必要になります。
- mbstring PHP 拡張
- intl PHP 拡張
- simplexml PHP 拡張
XAMPPの初期インストール時には、全てのモジュールがインストールされているのですが、有効になっているのは、「mbstring」と「simplexml」だけでした。
Intl拡張モジュールを有効化しましょう。
intl拡張モジュール有効化
既に、XAMPPに同梱はされているので、php.iniの編集だけでOKです。
Xamppのphp.iniファイルのある、ディレクトリに移動しましょう。
デフォルトは、「C:\xampp\php」
だと思います。

赤枠にあるように、php.iniファイルを編集する時は、予め、トラブルが起きても復元できるようにバックアップを取る癖をつけておいてください。
ここでは「php.ini_bak」というファイルで保存しています。
php.iniを任意のエディターで開いてください。

php.iniを開いたら、文字列検索を開き「extension=intl」を検索してください。 赤枠の様に、ヒットするはずです。
コメントアウトを削除し、有効にして、保存してください。
;extension=intl → extension=intl
次は、php.iniの変更を有効にするため、Apacheを再起動してください。

XAMPPコントロールパネルで「Stop」「Start」で、再起動は完了です。
php.iniに限らず、何か設定の変更を行った場合は、必ず、対象のサーバープロセスを再起動させる癖をつけましょう。
「あれ?変更したのに、何も変わらない」
という、躓きを減らすことができますので。
phpinfoで確認
Apacheを再起動したら、phpinfoでintl拡張モジュールが有効になっているか、確認しましょう。
WEBブラウザを開き、http://localhostへアクセスしてください。

phpinfoのメニューをクリックしてください。
移動後、Ctrl + F で検索を開いて、「intl」とページ内検索をかけてください。

赤枠にように、「intl」と表示されていれば、有効になっています。
これで、Cakephpのモジュール動作条件はクリアしました。
最後に
今のWEBシステム開発業務は、フレームワークを使用することが当然になりつつあります。
駆け出しの頃は、フレームワークをセットアップするだけでも、四苦八苦すると思います。
まず、「モジュールってなんやねん」という話からだと思います。
僕もそうでした。
Laravelとか、他のフレームワークも、動作要件として必要なモジュールは変わってきます。
なので、
「composerでインストールしてもエラーで動かない!」
という時は、焦らず、きちんと動作要件を満たしているか、確認することが大事です。
僕はCakephpに馴染みがあり、他のフレームワークを触っても、やっぱりCakeが好きです。
今は、Laravelが非常に人気ですが、また、需要関係なしにCakeの記事を書きたいと思います。
じゃ、そーいうことで!!