ローグウェーブソフトウェアのブログ

開発をシンプルに 安全で高品質のコードを 素早くお客様のもとへ

Viva la PHP 7 Revolución!

ローグウェーブのブログCodeBuzzに投稿されたPHP 7に関する記事をご紹介します。オリジナルはZend Technologiesの製品エバンジェリストであるDaniel Bermanがzendのdevzoneに投稿した記事です。PHP 7の興奮が伝わってきます。

Viva la PHP 7 Revolución!

blog.klocwork.com

2015年はPHPにとって素晴らしい年でした。Drupal 8、Magento 2、Symfony 3、そして何といってもPHP 7です!

PHP 7に心動かされない人はいないでしょう。単なるPHPのメジャーリリースをはるかに超え、長い準備期間やリリースにまつわる様々なうわさ話は見事に正当化されました。PHP 7はPHPにおけるゲームのルールを変え、ウェブ全体のルールも書き換えることになるでしょう。

この騒ぎは一体全体どういうもので、どうやったら安全に革命に参加できるのでしょうか? 以下の記事をお読みください!

パフォーマンス、パフォーマンス、パフォーマンス

私たちが住んでいるのは、すぐに満足が与えられ、変化し続ける世界です。私たちが作ったアプリケーションは光のスピードで動作しなければならず、webテクノロジーはこの飽くことを知らない要求に応えるためにイノベーティブでリスクを取り続ける必要があります。

新しいZend Engine 3.0.0を内蔵したことで、パフォーマンスとメモリ使用量は劇的に改善しました。PHP 7はこのスピードへの高まり続ける要求に対するPHPからの回答です。

私の話を鵜呑みにしないでください。もしあなたがパーティに遅れてきたのなら、以下のグラフを見てください。10月に行われたZendConにおいてAndiがキーノートで使ったものです。 f:id:RWSJapan:20151222174907p:plain

実際の世界で使われるアプリケーションは5.6の時と比べて2倍以上高速化されています。これがリリース前にささやかれていた噂の背後にあったもので、なぜPHP 7が2004年以来PHPの最も重要なリリースであるか、についての主な理由でもあります。

この疑いようなく素晴らしい事実はそのまま手に取ることのできる果実となって現れます。最も顕著なのが、高速化によってレスポンスが短くなることでエンドユーザーの体験が改善され、しかも同時ユーザー数を増やすことができるおかげでインフラにかけるハードウェアのコストを下げることができるのです。

PHP 7にはいくつかの言語上の変更と、新機能があります。新しい演算子、例えば、宇宙船(spaceship)演算子Null合体演算子スカラー型ヒントreturn型ヒントなどがあります。

新しい機能について、詳細はこちらをご覧ください。

大移動(great migration)を始めましょう

では、どのようにPHP 7に移行するのでしょうか?

まずPHP 5のコードをどのように移行するのか考えなければなりません。よいニュースは、後方互換性にまつわる問題は最小化されている、ということです。実際、驚くべきパフォーマンスを実現したZend Engine(PHPの「カーネル」)の脳外科手術の結果としての互換性の問題は事実上ありません。

しかしPHP 7.0について考えると、PHPチームはいくつか互換性を壊す決定を行いました。それらは充分に小規模で、新しいメジャーバージョンに採り入れるのに意味のある変更であるとみなされました。実際ほとんどのものはずい分前に非推奨(Deprecated)の対象であり、しばらく前から使われていなかったものです。7.0への移行に関するphp.netのページをご覧いただき、非互換のリストと新機能の詳細についてご確認ください。

加えて、移行のプロセスを助けるいくつかのツールがあります。その1つはZend Studioです。Zend Studioの最新版はPHP 7 Expressと呼ばれる移行支援機能を持ち、スムーズにPHP 7に移行するためにはコードのどこを修正すればよいのか教えてくれます。

PHP 7 Expressはコードをスキャンして、新しい予約後や非互換のパターンなどの互換性の問題を探し、リストにして表示します。そのリストを眺め、対応するプロジェクト内の行やファイルを開くことができます。 f:id:RWSJapan:20151222181807j:plain

Zend StudioはまたPHP 7で導入されたデリファレンス構文の変更に対して一時しのぎの解決法を提供します。コード中の問題の表現に丸括弧を追加することで、PHP 5でもPHP 7でも動作するコードに変換します。

アップグレードに関する包括的なガイドebookをご覧ください。

PHP 7を設定する

移植作業を始めたら、作成したアプリをテストするためのPHP 7スタックについて考え始めなければなりません。

Zend Server PHP 7のtech previewが最近公開され、安全で簡単に始められる方法を知ることができます。

Zend Serverはプロフェッショナル仕様の保証されたセキュアなPHPスタックで、PHPアプリの開発やデバッグ、展開やモニターを行うための先進的な数々のツールが提供されます。

このZend Server PHP 7のtech previewは現在最も包括的なPHP 7のスタックで、膨大な数のテスト済みの拡張が同梱されています。このPHP 7スタックはZend Server UIによって容易に管理や設定を行うことができます。

のみならず、Zendの高度な開発ツールZ-RayをあなたのPHP 7コード上で利用することもできます。

インストールスクリプトが面倒な仕事を代わりに行ってくれるため、インストール作業は容易です。必要な作業はスクリプトを走らせて必要な前提条件を確認し、パッケージをインストールするだけです。

重要! このtech previewは現在Linux 64-bit (Debian 7/8, Ubuntu 14.04, CentOS 6/7)しかサポートしていません。他のOSは近いうちに追加されます。

Dockerからも利用可能です。

devzone.zend.com

さあはじめましょう

さて、それではどのようにPHP 7を開始すればよいでしょうか?

まず、Zend.comにアクセスしてZend Server PHP 7 tech previewのインストールスクリプトをダウンロードしてください。

パッケージ(ZendServer-9.0.0-TechPreview-RepositoryInstaller-linux.tar.gz)をダウンロードしたら、以下のコマンドを実行してください。

./install_zs.sh 7.0 --automatic

インストールが終了したら終了通知が現れ、サーバが動作を開始したことを伝えます。

Zend Server UIにアクセスするにはブラウザで https://<Server_IP>:10082/ZendServer (セキュア)、または http://<Server_IP>:10081/ZendServerにアクセスしてください。

UIにアクセスすれば起動ウィザードは完了です。PHP | phpinfo() ページでサーバとPHPについての設定情報を見たり、PHP | Extensionsページで設定や管理情報を見ることができます。

f:id:RWSJapan:20151224125944p:plain

コードの展開

作成したコードをウェブサーバのルートディレクトリ(/var/www あるいは /var/www/html)に置けば、Zend ServerとPHP 7の上であなたのアプリは動作を開始します。

あとはブラウザで以下のURLを開いてください。

http://localhost/<yourPHPfile>.php

PHP 7はあなたのアプリを立ち上げ、深刻なPHPエラーがなければブラウザ上でアプリが動作するでしょう。ページの下部にはZendの先進的な開発ツール、Z-Rayが表示され、コードの問題を指摘してくれます。

あるいは... Zend ServerのGetting Startedページに含まれているサンプルのアプリを展開することもできます。 f:id:RWSJapan:20151224140620j:plain

さらなるおまけ

PHP 7については以下の参考文献もぜひお読みください。 Enjoy!

PHP 7革命万歳!

お問い合わせ

Zendの製品やPHP 7への移植について、ご興味のある方はぜひご連絡ください。 http://www.roguewave.jp/forms/request.htmlwww.roguewave.jp

blog.roguewave.jp

ローグウェーブ ソフトウェア 柄澤(からさわ)