php.ini の設定により動作が変化します。
名前 | デフォルト | 変更可能 | 変更履歴 |
---|---|---|---|
com.allow_dcom | "0" | INI_SYSTEM |
|
com.autoregister_typelib | "0" | INI_ALL |
|
com.autoregister_verbose | "0" | INI_ALL |
|
com.autoregister_casesensitive | "1" | INI_ALL |
|
com.code_page | "" | INI_ALL |
|
com.dotnet_version | "" | INI_SYSTEM |
PHP 8.0.0 以降で利用可能 |
com.typelib_file | "" | INI_SYSTEM |
以下に設定ディレクティブに関する 簡単な説明を示します。
com.allow_dcom
これを on にすると、PHP が D-COM (分散 COM) クライアントとして動作することを許可し、 PHP スクリプトがリモートサーバー上に COM オブジェクトを生成することを 許可します。
com.autoregister_typelib
これを on にすると、 生成した COMオブジェクトのタイプライブラリから取得した 定数を PHP に登録しようと試みます。ただし、それはオブジェクトが 当該情報を取得するためのインターフェイスを提供している場合のみです。 登録する定数の大文字小文字を区別するかどうかについては、 com.autoregister_casesensitive php.ini 設定ディレクティブで制御します。
com.autoregister_verbose
これを on にすると、オブジェクト生成時のタイプライブラリの読み込み中に 発生したすべての問題が PHP のエラー機構を用いて報告されます。 デフォルトは off で、この場合はタイプライブラリの検索や読み込みの際の エラーは一切報告されません。
com.autoregister_casesensitive
これを on にすると (デフォルト)、 COMオブジェクトをインスタンス化中に自動読み込みされた タイプライブラリ中に見つかった定数が、大文字小文字を区別して 登録されます。詳細は com_load_typelib() を参照ください。
com.code_page
これは、COM オブジェクトとの文字列の受け渡しに使用するデフォルトの
文字セットコードページを制御します。空の文字列が設定された場合、
PHP は CP_ACP
が指定されたと仮定します。
これは、デフォルトのシステム ANSI コードページです。
スクリプト中のテキストがデフォルトとは異なるエンコーディング/ 文字セットを使用している場合、このディレクティブを設定することで com クラスのコンストラクタのパラメータとして コードページを指定する必要がなくなります。 (他の PHP 設定ディレクティブとともに) このディレクティブを使用すると、 PHP スクリプトの移植可能性が悪くなることに注意しましょう。 できる限り、COM のコンストラクタにパラメータを指定する方式をとるべきです。
com.dotnet_version
dotnet オブジェクトが使う、.NET framework のバージョン。
この値は、framework のバージョン番号のうち、ドットで区切られた最初の3つの部分で、
v
が先頭に付きます。たとえば v4.0.30319
のようなものです。
com.typelib_file
このパラメータでは、起動時に読み込まれるタイプライブラリの一覧を
含むファイルへのパスを保持します。このファイル内の各行が
タイプライブラリ名として扱われ、com_load_typelib()
をコールした際にそれが読み込まれます。登録された定数は永続的に
保持されるので、ライブラリの読み込みは一度だけでよくなります。
タイプライブラリの名前が #cis
あるいは
#case_insensitive
で終わる場合は、そのライブラリから
読み込まれた定数は大文字小文字を区別せずに登録されます。