4D v13.4

PHPモジュールのサポート

ホーム

 
4D v13.4
PHP
PHPモジュールのサポート

PHPモジュールのサポート  


 

 

このappendixでは、4DのPHPモジュール実装について説明します。以下の項目について説明します:

  • 4DのPHPインタプリタでデフォルトで提供される標準PHPモジュールのリスト
  • 4Dが保持しない標準PHPモジュールのリスト
  • 追加モジュールのインストール

 以下の表は4Dにデフォルトで提供されるPHPモジュールの詳細です。

名称Webサイト説明
BCMathhttp://php.net/bc文字列として表された任意の大きさおよび 精度の数をサポートするバイナリ計算機
例:
 C_LONGINT($value;$result)
 $value:=4
 $ok:=PHP Execute("";"bcpow";$result;$value;3)
カレンダーhttp://php.net/calendar異なったカレンダーフォーマット間の変換を 簡単に行う関数の集まり。ユリウス積算日を標準とする。
例:
 C_LONGINT($NumberOfDays)
 $ok:=PHP Execute("";"cal_days_in_month";$NumberOfDays;1;2;2010)
Ctypehttp://php.net/ctype現在のロケールに基づき文字または文字列がある文字クラスに含まれるかどうかを調べる関数。
例:
  // 提供された文字列のすべての文字が句読点かチェックする
 C_TEXT($myString)
 $myString:=",.;/"
 $ok:=PHP Execute("";"ctype_punct";$isPunct;$myString)
日付・時刻http://php.net/datetimePHPスクリプトを実行するサーバから日付と時間を取得する。
例:
  // ポルトガルのリスボンにおける日の出時刻を計算する。
  // 緯度: 38.4 North、
  // 経度: 9 West、
  // 天頂 ~= 90、
  // 時差: +1 GMT
 C_TIME($SunriseTime)
 $ok:=PHP Execute("";"date_sunrise";$SunriseTime;0;1;38,41;-9;90;1)
DOM (Document Object Model)http://php.net/domPHP5のDOM API による XMLドキュメントの処理。
Exif(*)http://php.net/exif画像のメタデータを扱う。
ファイル情報 (*)http://php.net/fileinfoファイルのcontent-typeとエンコーディングを推測する。
Filterhttp://php.net/filter安全でないソース、例えばユーザ入力などによるデータの検証や除去を行う。
例:
 C_LONGINT($filterId)
 C_TEXT($result)
 $ok:=PHP Execute("";"filter_id";$filterId;"validate_email")
 $ok:=PHP Execute("";"filter_var";$result;"hop@123.com";$filterId)
FTP (File Transfert Protocol)http://php.net/ftpFTPサーバへの詳細なアクセスを提供。
Hashhttp://php.net/hashメッセージダイジェストエンジン。さまざまなハッシュアルゴリズムを使用して、任意の長さのメッセージに対する直接的あるいは段階的な処理を可能とする。
例:
 C_TEXT($md5Result)
 $ok:=PHP Execute("";"md5";$md5Result;"this is my string to hash")
GD (Graphics Draw) ライブラリhttp://php.net/gd画像処理。
Iconvhttp://php.net/iconv様々な文字セット間でのファイル変換。
JSON (JavaScript Object Notation)http://php.net/jsonJSONデータ交換形式の実装
LDAPhttp://php.net/ldapLDAPは、"ディレクトリサーバ" にアクセスするために使用されるプロトコル。 ディレクトリとは、 ツリー構造に情報を保持している特殊なデータベース。
LibXMLhttp://php.net/libxmlXML関数や定数のライブラリ
マルチバイト文字列http://php.net/mbstring複数バイト文字エンコーディングの処理や文字列の変換に使用できる、文字処理のための一連の関数。
OpenSSLhttp://php.net/opensslOpenSSL の関数を使用して署名の生成、そして、データのシール (暗号化)およびオープン(復号化)を行う。
PCRE (Perl Compatible Regular Expressions)http://php.net/pcrePerl 5と同じシンタックスおよび語義を使用する一連の正規表現関数。
例:
  // この例は文字列から不要なスペースを取り除きます。
 C_TEXT($myString)
 $myString:="foo   o   bar"
 PHP Execute("";"preg_replace";$myString;"/\\s\\s+/";" ";$myString)
 ALERT($myString)
  // $myStringからスペースの繰り返しが削除され"foo o bar"になる。
PDO (PHP Data Objects) (*)http://php.net/pdoデータベースアクセスのインタフェース。データベース毎のPDOドライバが必要。
PDO_SQLITE (*)http://php.net/pdo_sqliteSQLite 3にPHPからのアクセスを可能にする、PHP Data Objects (PDO) インタフェースを実装したドライバ。
リフレクションhttp://php.net/reflection完全なリフレクションAPIで、 クラス、インターフェイス、関数、メソッド、そしてエクステンションのリバースエンジニアリングを可能にする。
Phar (PHP Archive)http://php.net/pharPHP アプリケーション全体をひとつの "phar" (PHP Archive) ファイルにまとめてしまい、配布やインストールを容易にする。
Sessionhttp://php.net/sessionPHPセッションのサポート
例:
セッションはWebアプリケーションにおいて、それぞれのリクエスト間でコンテキストを保持するために使用されます。4DでPHP Executeを実行すると、PHPスクリプトはセッションを開始し、コンテキストとして保持すべき情報を$_SESSION配列に格納することが可能となります。PHPスクリプトがセッションを使用する場合、PHP GET FULL RESPONSEコマンドを使用してPHPから返されるセッションIDを取得し、PHP Executeを呼び出す都度、事前にSET ENVIRONMENT VARIABLEコマンドを使用してセッションIDを指定しなければなりません。
  // "PHP Execute with context" メソッド
 If(<>PHP_Session#"")
    SET ENVIRONMENT VARIABLE("HTTP_COOKIE";<>PHP_Session)
 End if
 If(PHP Execute($1))
    PHP GET FULL RESPONSE($0;$errorInfos;$errorValues;$headerFields;$headerValues)
    $idx:=Find in array($headerFields;"Set-Cookie")
    If($idx>0)
       <>PHP_Session:=$headerValues{$idx}
    End if
 End if
SimpleXMLhttp://php.net/simpleXMLとても簡単かつ容易に使用できるツールで、XMLをプロパティや配列反復子で処理可能なオブジェクトに変換するために使用します。
ソケットhttp://php.net/socketsBSDソケットに基づくソケット通信機能の低レベルインタフェースを実装し、クライアントとしてだけでなく、ソケットサーバとして動作させることが可能となります。
SPL (Standard PHP Library)http://php.net/spl標準的な問題を解決するためのインターフェイスやクラスを集めたもの。
SQLite (*)http://php.net/sqliteSQLiteデータベースエンジン用の拡張。このエンジンは埋め込み可能。
SQLite3 (*)http://php.net/sqlite3SQLite version 3データベースをサポート。
Tokenizerhttp://php.net/tokenizer字句解析レベルの言語処理を行うことなく、PHPソースを解析/修正するツールを作成することを可能にする関数。
XML (eXtensible Markup Language)http://php.net/xmlXMLドキュメントの解析。
XMLreaderhttp://php.net/xmlreaderプル型のXMLパーサー。
XMLwriterhttp://php.net/xmlwriterXML形式のストリームやファイルを生成。
Zlibhttp://php.net/zlibgzip (.gz) 圧縮ファイルの読み込みと書き出し。
例:
 WEB GET HTTP HEADER($names;$values)
 $pos:=Find in array($names;"Accept-Encoding")
 If($pos>0)
    Case of
       :(Position($values{$pos};"gzip")>0)
          WEB SET HTTP HEADER("Content-Encoding: gzip")
          PHP Execute("";"gzencode";$html;$html)
       :(Position($values{$pos};"deflate")>0)
          WEB SET HTTP HEADER("Content-Encoding: deflate")
          PHP Execute("";"gzdeflate";$html;$html)
    End case
 End if
 WEB SEND TEXT($html)
Ziphttp://php.net/zipZIP圧縮アーカイブやその中のファイルの読み込みと書き出し。

(*) 現時点の4Dでは、Windows上でこれらのモジュールを利用できません。

構造的な理由から、以下のPHPモジュールはWindows上でのみ利用可能です。

名称Web サイト説明
COM & .NEThttp://php.net/comCOM (Component Object Model) はWindowsプラットフォーム上でアプリケーションやコンポーネントが通信を行うおもな方法です。さらに、4DはCOMレイヤからの.Netアセンブリのインスタンス化や作成をサポートします。
ODBC (Open DataBase Connectivity)http://php.net/odbc標準のODBCサポートに加え、PHPの統合ODBC関数により、独自のAPI実装にODBC APIの構文を利用したいくつかのデータベースへのアクセスが提供されます。
WDDX (Web Distributed Data eXchange)http://php.net/wddxプラットフォームにかかわらず、Webを利用したWebアプリケーション間のデータ交換を容易にします。

以下のPHPモジュールは4D v12に実装されていません。一番右の列にその理由が記載されています:

名称Web サイト理由- 代わりのソリューション
Mimetypehttp://php.net/mime-magic廃止 (廃止予定) - Fileinfoを使用。
POSIX (Portable Operating System Interface)http://php.net/posix廃止 (廃止予定)。
Regular Expression (POSIX Extended)http://php.net/regex廃止 (廃止予定) - PCREを使用。
Crackhttp://php.net/crackライセンスの制限。
ffmpeghttp://ffmpeg-php.sourceforge.net/ライセンスの制限 - LAUNCH EXTERNAL PROCESSで、コマンドラインでffmpegを使用
Image Magickhttp://php.net/manual/book.imagick.phpライセンスの制限 - GD 2を使用。
IMAP (Internet Message Access Protocol)http://php.net/imapライセンスの制限 - 4D Internet Commandsに統合されたコマンドを使用。
PDF (Portable Document Format)http://php.net/pdfライセンスの制限 - Haru PDFを利用。 
Mysqlnd (MySQL Native Driver)http://dev.mysql.com/downloads/connector/php-mysqlnd/4D環境に適切でない

PHPインタプリタに追加のモジュールをインストールすることが可能です。これによりデフォルトで提供されていない機能を使用できます。

以下のタイプの拡張をインストールできます:

  • PECL (PHP Extension Community Library) 拡張
  • PEAR (PHP Extension and Application Repository) フレームワークの拡張
  • Zend フレームワークの拡張
  • Symphony フレームワークの拡張
  • JELIX フレームワークの拡張
  • eZコンポーネント

各タイプのインストール情報は以下の通りです。

Note: 4D v12で提供されるPHPは以下の通りです:

  • バージョン5.3.2
  • WindowsとMac OSで、32-bitコンパイルおよびスレッドセーフモード
"php.ini" file: 変更する"php.ini" (後述) は4DアプリケーションのResourcesフォルダー (デフォルトファイル) あるいはデータベースの環境設定フォルダー (カスタムファイル) いずれかに配置できます。この点については4DでPHPスクリプトを実行するを参照してください。

Web サイト: http://pecl.php.net
PECL拡張を追加するには:

  1. 目的のPECL拡張をダウンロードしてビルドする。
    または
    PHP 5.3 VC9 Non Thread Safe Windowsバイナリパッケージからビルド済みの拡張を取り出す (http://windows.php.net/download/#php-5.3-nts-VC9-x86)。
  2. extensionフォルダに拡張を追加する。
  3. "php.ini"ファイルで拡張を有効にする。

警告: PECL Webサイトで利用可能な拡張が制限の緩いPHPライセンスであったとしても、そのうちのいくつかはよりライセンスに制限のあるライブラリを必要とする場合があります。

他のWebサイトでPHP拡張を入手できる場合もありますが、この場合PHPグループの検証によりに提供されるセキュリティ保証はありません。

Web サイト: http://pear.php.net/
PEARは完全なオブジェクト指向のフレームワークです。
PEAR拡張を追加するには:

  1. PEARパッケージをダウンロード (http://pear.php.net/package/PEAR/download) して、"pear"フォルダに解凍する。
  2. この"pear"フォルダを"php.ini"ファイルで指定した"include_path"に追加する。

  1. Zendフレームワークをダウンロード (http://framework.zend.com/download/latest)して、"zend"フォルダに解凍する。
  2. この"zend"フォルダを"php.ini"ファイルで指定した"include_path"に追加する。
  3. Zendフレームワークコンポーネントのドキュメントを読む: http://framework.zend.com/manual/en

Web サイト: http://www.symfony-project.org
SymphonyはWebコントローラを含むWebアプリケーションのフレームワークです。

  1. 以下のアドレスからフレームワークとサンドボックスをダウンロードし、解凍する: http://www.symfony-project.org/installation/1_2.

  1. JELIXフレームワークをダウンロード (http://jelix.org/articles/en/download/stable) し、解凍する。
  2. 出来上がった"jelix"フォルダを"php.ini"ファイルで指定した"include_path"に追加する。
  3. JELIXフレームワークコンポーネントのドキュメントを読む: http://jelix.org/articles/en/manual-1.1/components

  1. eZ Componentsをダウンロード (http://www.ezcomponents.org/download) し、"ez"フォルダに解凍する。
  2. 出来上がった"ez"フォルダを"php.ini"ファイルで指定した"include_path"に追加する。
  3. eZ Componentsのドキュメントを読む: http://www.ezcomponents.org/docs/api/latest

 
プロパティ 

プロダクト: 4D
テーマ: PHP