====== PHP7.2 intlのインストール ====== Version 7.2.22 --- [[http://www.y2sunlight.com|y2sunlight]] 2020-11-20 \\ [[php:top|PHPに戻る]] 関連記事 * [[php:7.2:httpd.conf|PHP7.2 Apache2の設定]] * [[php:7.2:php.ini|PHP7.2 php.iniの編集]] * PHP7.2 intlのインストール * [[php:7.2:ext:zmq|PHP7.2 ZeroMQのインストール]] ---- ===== 概要 ===== PHPには拡張モジュールというものがあります。これはPHPの機能を拡張する為のもので、PHPエクステンションとも言われています。 Windows では、PHP の拡張モジュールを読み込む方法は2通りあります。コンパイル時にPHPに組み込む方法と、Windowsバイナリとして公開されているDLLを読む込む方法です。 XAMPPではいくつかの拡張モジュールがDLLとして同封されています。拡張モジュールのリポジトリとしては [[https://pecl.php.net/|PECL (ピクル)]] が有名です。PECL は [[https://pear.php.net/|PEAR]] 同様に ''pecl'' コマンドを使ってインストールする方法が提供されていますが、Winodwsの場合は php.ini を編集し、手動でDLLを設置する方が一般的です。 現在インストールされている拡張モジュールを確認するには、コマンドプロンプトでphpコマンドを使います。 php -m また、phpワンライナーを使ってようにしても取得できます。 php -r "print_r(get_loaded_extensions());" 本章では、XAMPPに同封されている拡張モジュールのインストールの仕方を [[https://www.php.net/manual/ja/book.intl.php|intl]] を例に説明します。 === intl === intl は、phpの[[https://www.php.net/manual/ja/book.intl.php|国際化用の拡張モジュール]]です。[[https://cakephp.org/jp|CakePHP]]などのフレームワークや[[https://owncloud.jp/|ownCloud]]のようなプロダクトでも使用されているので、インストールが必要になる場合も少なくありません。 XAMPP 7.2.22 では intl はPHPのコンパイル時に組み込まれていませんが、DLLとして同封されています。以下ではintl のインストール方法について説明します。 \\ ===== インストール ===== php.iniを開き、以下のようにコメントを外します。この行はXAMPP7.2.22では893行目辺りにあります。 {{fa>file-o}} ''{XAMPP Install Folder}\php\php.ini'' ... ;extension=gmp extension=intl ;extension=imap ... インストールはこれだけです。拡張モジュールがロードされるか ''php -m'' で確認してみましょう。 D:\>php -m [PHP Modules] ... intl .... Apatchを再起動して下さい。 ==== extensionディレクティブについて ==== extensionは、拡張モジュールを自動的にロードするディレクティブです。extensionではモジュール名を指定することが出来ます。配置場所(パス)はextension_dirで指定し、XAMPP7.2.22では以下のように設定されています。 extension_dir = "D:\usr\xampp7.2.22\php\ext" Windwosの場合、extension_dir の下に ''php_intl''.dll があり、'intl'の部分がモジュール名に相当します。extension_dir 以外に拡張モジュールをインストールする場合は、モジュール名でなく絶対パスを指定して下さい。 \\ ===== テストコード ===== intl使った簡単なphpスクリプトを作成します。 getTextAttribute(NumberFormatter::CURRENCY_CODE)."\n"; $formatter = new NumberFormatter('en_US', NumberFormatter::CURRENCY); echo $formatter->getTextAttribute(NumberFormatter::CURRENCY_CODE)."\n"; $formatter = new NumberFormatter('ja_JP', NumberFormatter::CURRENCY); echo $formatter->getTextAttribute(NumberFormatter::CURRENCY_CODE)."\n"; このphpスクリプトをコマンドプロンプトで実行すると、以下のように通貨コードが表示されます: >php test.php EUR USD JPY \\