特集
2004/05/31 18:00 更新

UNIX USER 2004年6月号「実践! 最新PHP 5」より転載:
Part 4 PHP 4からPHP 5への移行

大幅なバージョンアップが行われたPHP 5。PHPユーザーとしては、どのような影響があるのか非常に気になるはずだ。Part 4では、PHP 5の互換性についての検証と、実行環境の入手方法について解説しよう。

 大幅なバージョンアップが行われたPHP 5。PHPユーザーとしては、どのような影響があるのか非常に気になるはずだ。Part 4では、PHP 5の互換性についての検証と、実行環境の入手方法について解説しよう。

INDEX PHP 4からPHP 5への移行
1. PHP 4との互換性
2. 実行環境の入手方法


PHP 4との互換性

UNIX USERこれからPHP 5に移行しようと考えているユーザーにとって、最大の関心事は、何といってもPHP 4との互換性であろう。Part 4では、注目の新エンジンの機能に注目してPHP 4とPHP5の互換性を解説する。

互換性

 Part 1でも触れたが、オブジェクトの扱いに関する動作に違いがある。

 オブジェクトの代入は、オブジェクトのコピーではなくなり、参照渡しとなっている。以前のように、オブジェクトのコピーが必要であれば、右辺にclone宣言を行うと良い。

PHP 4互換モード

 PHP 5には、PHP 4(Zend Engine 1)との互換性を保つための設定ディレクティブが用意されている。下記のディレクティブをphp.iniに挿入すると、PHP 5はZend Engine 1(PHP 4)互換モードで動作する。

#zend.ze1_compatibility_mode On

 しかし、php.iniに記述してしまうと、せっかくのPHP 5もすべてPHP 4互換で動作してしまい、PHP 5であるメリットが失われてしまう。もし、特定のディレクトリにあるスクリプトだけをPHP 4互換で操作させたいのであれば、Apacheの.htaccessファイルを用意し、下記のディレクティブを追加すればよい。

#php_flag zend.ze1_compatibility_mode On

 互換モードとは、Zend Engine 2(PHP 5)の内部処理について、Zend Engine 1(PHP 4)との互換性を実現する機能のことだ。互換モードを有効にしても、サポートする関数などは一切変わらない。phpversion()関数の戻り値も、本来のPHPバージョンを返すので、互換モードのON/OFFを判定するには、ini_get()関数を実行するしか方法がない。注意してほしい。

実行環境の入手方法

 PHP 5の実行環境を手に入れるには、ソースコードやバイナリパッケージを使ったインストールと、レンタルサーバーの2種類の方法がある。

ソースコードまたはバイナリからのインストール

 自力でPHP 5をインストールする際、いくつか注意しなければならない点がある。

 PHP 5から新たにサポートされた機能のいくつかは、動作環境にインストール済みのライブラリであっても最新のバージョンへのアップグレードを要するケースがある。

 筆者は個人的にDebian GNU/Linux(Woody)を使用しているが、SimpleXMLを使うに当たり、libxmlのバージョンが古かったため、バージョン2.5.11にアップデートした。

レンタルサーバーを借りる

 本特集の執筆に当たり、PHP 5をサポートしているレンタルサーバーを探してみたのだが、PHP 5がRC版であることもあり、正式に対応をうたうところを見つけることができなかった。

 そんな中、唯一見つけたのが次のサイトだ。興味のある方は問い合わせてみると良いだろう。

abcb Networks

 PHP 5が正式リリースされた時点でサポート対応を表明するところが増えると思われる。


 PHP 5のリリースも秒読み段階へと突入した。今後は、PHP 4はバグフィックスやセキュリティ対策が中心となり、新たな要件はすべてPHP 5に実装される予定だ。

 PHP 5への移行作業はわずかで、便利な機能のおかげで、むしろ作業量を軽減できる。PHP 5を使ったことがない人は、本特集を機にぜひともチャレンジしてほしい。筆者をはじめ、多くのエンジニアがPHP 5の正式リリースを待ち望んでいる理由を実感できるはずである。

UNIX USER 6月号表紙 UNIX USER 6月号

第1特集
Linuxで多チャンネル同時録画

第2特集 Windowsメール環境からの脱出
第3特集 実践! 最新PHP 5


[照井進吾,UNIX USER]

Copyright(C) 2010 SOFTBANK Creative Inc. All Right Reserved.