特集
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との互換性 |
これから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版であることもあり、正式に対応をうたうところを見つけることができなかった。
そんな中、唯一見つけたのが次のサイトだ。興味のある方は問い合わせてみると良いだろう。
PHP 5が正式リリースされた時点でサポート対応を表明するところが増えると思われる。
PHP 5のリリースも秒読み段階へと突入した。今後は、PHP 4はバグフィックスやセキュリティ対策が中心となり、新たな要件はすべてPHP 5に実装される予定だ。
PHP 5への移行作業はわずかで、便利な機能のおかげで、むしろ作業量を軽減できる。PHP 5を使ったことがない人は、本特集を機にぜひともチャレンジしてほしい。筆者をはじめ、多くのエンジニアがPHP 5の正式リリースを待ち望んでいる理由を実感できるはずである。
UNIX USER 6月号
第1特集
第2特集 Windowsメール環境からの脱出 |
関連記事
- Part 3 PHP 5に標準バンドルされた機能
- Part 2 Zend Engine 2
- Part 1 待望のPHP 5リリース
- 新版PHP5でオブジェクト機構を実現、日本PHPユーザ会 廣川 類氏コラム
関連リンク
[照井進吾,UNIX USER]
Copyright(C) 2010 SOFTBANK Creative Inc. All Right Reserved.