4DではPHPスクリプトを直接実行できます。これによりPHPで利用できる豊富なユーティリティライブラリを使用できるようになります。特に以下のような機能を利用できるようになります(ただし以下のリストに挙げられた機能に限りません):
- 暗号化 (MD5) およびハッシュ
- ZIPファイルの処理
- ピクチャーの処理
- LDAP アクセス,
- COM アクセス(MS Officeドキュメントのコントロール), 等
PHP コマンドとそのシンタックスについての完全な詳細については、インターネット上にある豊富なPHP ドキュメンテーションを参照してください。以下は、そういったリファレンスサイトのリンクの一例です:
http://us.php.net/manual/en/
http://phpdeveloper.org/
PHP を4D で使用するためには、PHP インタープリターを使用する必要があります。PHP インタープリターは、以下の2つの条件を満たしている必要があります:
- FastCGIでコンパイルされていなければなりません。
- 4Dと同じマシン上になければなりません。
インタープリターは、特定のアドレスとTCP ポートを聞くように設定しなければなりません。これらのパラメーターは、データベース設定, か、またはセッションに対してSET DATABASE PARAMETER コマンドを使用して指定することができます。もちろん、インタプリタの起動や動作は開発者が管理しなければなりません。
PHP インタープリターをダウンロードしてインストールするためには、以下の2つのやり方があります:
- PHP をPHP公式Webサイト からダウンロードします。Windows 上では、必要なバージョンを選択できます。macOS 上では、自分のバージョンをコンパイルするか、プリビルトされたバージョンを他のサイトから探す必要があります。
- 4D product ダウンロードページ からmacOS およびWindows 用のPHP をダウンロードします。ただし、4D v20 R2 まで4D で使用されていたこのバージョンは、今後メンテナンスされていないということに注意してください。
PHP をダウンロードして、コンパイルし、Windows とmacOS にインストールするための詳細な情報については、こちらの4D blog 記事を参照してください: Deprecation of PHP commands and removal of 4D built-in PHP interpreter
php.ini 初期化ファイルは project 内のResources フォルダ. にあります。php.ini ファイルの用途は、具体的には、PHP エクステンションの場所を宣言するためです。PHP への最初の呼び出しの時にこのファイルが見つからなかった場合、4D はデフォルトの設定オプションでこれを作成します。
デフォルトの4D php.ini ファイルを使用しない場合、使用する php.ini ファイルは以下のエントリーを含んでいなければなりません:
PHP 公式webサイト 上のカレントバージョンは、デフォルトではmbstring パッケージをロードしないという点に注意してください(このパッケージは4D では必須です)。これを使用する場合、以下の行を php.ini ファイルに書き加える必要があるかもしれません:
extension_dir = "./ext/"
extension=mbstring
タイムアウトについての注意点
PHP 処理にかかる時間が比較的長い(30秒以上)場合、デフォルトで4D ないで"タイムアウト"エラーが返され、処理は失敗します。この場合、PHP 実行により多くの時間を割り当てることができるように、デフォルトのタイムアウトを設定することができます。これには2つの方法があります:
- php.ini ファイル内のmax_execution_time 変数を設定する(秒数を値として渡します)。警告: この設定は全てのスクリプトに影響します。
- 長い処理を実行しているPHP 実行スクリプト内にてset_time_limit(nbSec) コマンドを呼び出す。nbSec にそのPHP スクリプトの実行に割り当てる最大の長さを渡します。こちらの方法はこのスクリプトしか影響を与えないため、推奨されます。一般的には、セキュリティ上の理由から、PHP スクリプトに対しては短めのタイムアウト値に抑えておくことが好ましいとされます。