実行時設定

php.ini の設定により動作が変化します。

COM 設定オプション
名前 デフォルト 変更可能 変更履歴
com.allow_dcom "0" PHP_INI_SYSTEM  
com.autoregister_typelib "0" PHP_INI_ALL  
com.autoregister_verbose "0" PHP_INI_ALL  
com.autoregister_casesensitive "1" PHP_INI_ALL  
com.code_page "" PHP_INI_ALL  
com.dotnet_version "" PHP_INI_SYSTEM PHP 8.0.0 以降で利用可能
com.typelib_file "" PHP_INI_SYSTEM  
PHP_INI_* モードの詳細および定義については どこで設定を行うのか を参照してください。

以下に設定ディレクティブに関する 簡単な説明を示します。

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 で終わる場合は、そのライブラリから 読み込まれた定数は大文字小文字を区別せずに登録されます。