残り一年! PHP4からPHP5への移行

第4回 モジュール関連の違い

この記事を読むのに必要な時間:およそ 4 分

今回はモジュール関連の違いについて解説します。PHP5ではXML関連モジュールの入れ替えや新しいXML関連モジュールのデフォルト化など,XML関連で大きく変わっています。ほかにもPECLプロジェクトに移動されソースディストリビューションに含まれなくなったモジュール,廃止されたモジュールなどもあります。これらについて解説します。

特に記述がない場合,PHP4はPHP4.4.x,PHP5はPHP5.2.xを意味します。

XML関連の違い

PHP4もXML関連のモジュールが用意されていました。PHP4とPHP5で互換性があるXML関連モジュールはSAXパーサとXML RPCモジュールで,ほかのモジュールは互換性がありません。PHP5では同じ機能を提供する別のモジュールが用意されていたり,新しいインターフェースが用意されています。

機能PHP4PHP5
SAXパーサXML ParserXML Parser
DOM関数DOM_XMLDOM
XSLT変換XSLTXSL
XML RPC関数XML_RPCXML_RPC
SOAP関数N/ASOAP
libxml関数N/Alibxml
簡易XML文書アクセスN/ASimpleXML
XMLプルパーサN/AXMLReader
サービスデータオブジェクトN/ASDO
XML Data Access Service for Service Data ObjectsN/ASDO XML Data Access Service

PHP5は簡単にXML文書にアクセスできるSimpleXMLなど,XML機能が強化されています。しかし,PHP4とPHP5のXML機能には大きな違いがあるので移行には困難を伴うケースも多いと思います。ここでは違いの概要を解説しています。詳しくはPHPマニュアルを参照してください。

DOM関数

DOM(DocumentObjectModel)はXMLドキュメントへのアクセス仕様であるため,モジュールが提供するAPIは似てはいますが,互換性はありません。しかし,DOM API自体は言語に依存しないAPI定義であるため,関数名を変えるだけで同じ動作をするものも多くあります。

DOM XMLモジュール関数(PHP4)

関数機能
DomDocument->create_commentCreate new comment node
DomDocument->create_element_nsCreate new element node with an associated namespace
DomDocument->create_elementCreate new element node
DomDocument->create_entity_referenceCreate an entity reference

出典:PHPマニュアル

DOMモジュール関数(PHP5)

関数機能
DOMDocument->createComment()Create new comment node
DOMDocument->createDocumentFragment()Create new document fragment
DOMDocument->createElement()Create new element node
DOMDocument->createElementNS()Create new element node with an associated namespace
DOMDocument->createEntityReference()Create new entity reference node

出典:PHPマニュアル

定数名はDOMとDOM XMLモジュールで互換性があります。

XML_ELEMENT_NODE
XML_ATTRIBUTE_NODE
XML_TEXT_NODE
XML_CDATA_SECTION_NODE

このように,DOMとDOM XMLモジュールで同じ名前の定数を同じ意味で利用しています。DOM関数を利用していてもPHP4からPHP5への移行はそれほど困難ではないと思います。

著者プロフィール

大垣靖男(おおがきやすお)

University of Denver卒。同校にてコンピュータサイエンスとビジネスを学ぶ。株式会社シーエーシーを経て,エレクトロニック・サービス・イニシアチブ有限会社を設立。
オープンソース製品は比較的古くから利用し,Linuxは0.9xのころから利用している。オープンソースシステム開発への参加はエレクトロニック・サービス・イニシアチブ設立後から。PHPプロジェクトでは,PostgreSQLモジュールのメンテナンスを担当している。

URLhttp://blog.ohgaki.net/

著書

コメント

コメントの記入