目次

PHP7.2 intlのインストール

Version 7.2.22 — y2sunlight 2020-11-20

PHPに戻る

関連記事


概要

PHPには拡張モジュールというものがあります。これはPHPの機能を拡張する為のもので、PHPエクステンションとも言われています。

Windows では、PHP の拡張モジュールを読み込む方法は2通りあります。コンパイル時にPHPに組み込む方法と、Windowsバイナリとして公開されているDLLを読む込む方法です。

XAMPPではいくつかの拡張モジュールがDLLとして同封されています。拡張モジュールのリポジトリとしては PECL (ピクル) が有名です。PECL は PEAR 同様に pecl コマンドを使ってインストールする方法が提供されていますが、Winodwsの場合は php.ini を編集し、手動でDLLを設置する方が一般的です。

現在インストールされている拡張モジュールを確認するには、コマンドプロンプトでphpコマンドを使います。

php -m

また、phpワンライナーを使ってようにしても取得できます。

php -r "print_r(get_loaded_extensions());"

本章では、XAMPPに同封されている拡張モジュールのインストールの仕方を intl を例に説明します。

intl

intl は、phpの国際化用の拡張モジュールです。CakePHPなどのフレームワークやownCloudのようなプロダクトでも使用されているので、インストールが必要になる場合も少なくありません。

XAMPP 7.2.22 では intl はPHPのコンパイル時に組み込まれていませんが、DLLとして同封されています。以下ではintl のインストール方法について説明します。


インストール

php.iniを開き、以下のようにコメントを外します。この行はXAMPP7.2.22では893行目辺りにあります。

{XAMPP Install Folder}\php\php.ini

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では以下のように設定されています。

php.ini
extension_dir = "D:\usr\xampp7.2.22\php\ext"

Windwosの場合、extension_dir の下に php_intl.dll があり、'intl'の部分がモジュール名に相当します。extension_dir 以外に拡張モジュールをインストールする場合は、モジュール名でなく絶対パスを指定して下さい。


テストコード

intl使った簡単なphpスクリプトを作成します。

test.php
<?php
$formatter = new NumberFormatter('de_DE', NumberFormatter::CURRENCY);
echo $formatter->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