PHP5.6からPHP7にアップデートする上で気をつけるコト

freelance

こんにちは。

ITエンジニア・webディレクター・webデザイナーなどのIT人材の自立・キャリアを支援するITプロパートナーズの木村です。

弊社では、独立精神旺盛な優秀なエンジニアの方々の独立・起業サポートや、フリーランス支援を行っています。 こちらでは、日々の現場でサポートさせていただいている中での、プロの目線で、エンジニアに役立つお話をしてまいります。

今回は、PHPについて触れていきます!

なおPHPの必要有無に限らず、フリーランスエンジニアの案件の特徴や仕事の取り方など総合的な情報は「フリーランスエンジニアの案件紹介!経験年数別の年収・実態を調査」でご紹介しているので、併せてご覧ください。

また、PHPを生かしてフリーランスになりたい方は「フリーランスエンジニアになるには?」の記事も参考になると思います。

そもそもPHP7って?

PHPとは現在WEBシステム開発で広く使われている開発言語の1つになります。

これ以外にもJAVA、RUBY、PERLなどがありますがPHPは比較的習得しやすく、簡単なことから高機能のことまで対応可能ということでWEBシステム開発には好んで使われる言語です。

PHPが最初に発表されてからもう20年近くたちますが、人気を得たのはメジャーバージョン4(PHP4)あたりからになります。

現在はメジャーバージョン5系の最新版(5.6)が最も使われているのではないでしょうか?

ただ5系に関しても最初にリリースされてから10年近くの時間が経ち、新たにメジャーバージョンアップの必要性が叫ばれていました。

そこでようやく発表されたのがPHP7となります。

ちなみになぜPHP6ではなくPHP7になったのでしょうか?

一説にはメジャーバージョンアップで6というのは不吉(他の言語で失敗例が多い)ためと言われています。

しかし実際はPHP6の開発プロジェクトの成果が5系のマイナーバージョンアップに反映されてしまったので、プロジェクト的にPHP6が消滅したからというのが通説です。

PHP7とPHP5.6の違いは?

PHP7の開発に関しては後方互換性を重視して行われてきた経緯があるため、見た目の違い(関数がまるで違うなど)はあまりありません。

但し5.6系で非推奨となっていた古い関数群は切り捨てられているのでそこは注意が必要です。

見た感じは違いを感じられないかもしれませんが、内部的には大きな変更が加わっています。

特にPHP5に比べて実行速度は格段に向上しメモリの使用量は激減したというベンチマークの結果が報告されています。

筆者の個人的な印象ですがPHP7は言語仕様の変更が目的ではなく、PHP5の内部実装において不適切、無駄なところを作り直すことを目的に、リリースされたバージョンのように感じられます。

アップデートするときに気をつけるべきことって?

後方互換性が高いと述べましたが、すんなり動くかどうかはそのシステムで使っている関数やライブラリ次第という面があります。

既にさまざまなブログやqiitaなどでPHP7での問題報告が上がっていますが多くは軽微なもので、エラーが出たら個別対処すればよい内容です。

ただしアップデートするに当たって以下の点は事前に知っているとトラブルを回避できるのではないかと思います。

  • 5.6系では非推奨でも使えていた関数が利用できなくなります。
  • PHP7から、組み込み型名と同じクラス名・インターフェース名などが作れなくなりました。たとえば intや string というクラスは予約語なので作成することができません。
  • PHP7から16進文字列が数値文字列として扱われなくなります。例えば「0x10」はただの文字列として判断されますので数値判定などでは使えなくなります。
  • E_STRICTエラーがPHP7からは廃止されます。

アップデートしたほうがいい?

2018年末にPHP5.6のサポートが終了することを考えるとPHP7にアップデートすることは必須だと言っていいでしょう。

また後方互換性も十分確保できているので、シンプルなPHPのプログラムであればアップデートにかかるコストもさほど大きくはないと思います。

但し、フレームワークを使用しているサイトや、既にメンテナンスする体制が崩壊しているサイト(動いているけど中身はブラックボックス化している)ではその限りではありません。

例えば、E_STRICTで定義されたエラーがPHP7で無くなった場合、フレームワークによっては動かない危険があります。

そうでなくてもブラックボックス化されているサイトではどこを直せばよいかわからない!という事態もありえます。

つまり、いくら互換性が高くても「もう触ることができない」「ブラックボックス化された」プログラムに対してはアップデートをすることはできないのです。

フレームワークに関しては、例えばCAKEでは2.7以前のものはPHP7では動かないという記事も見かけました。

なので古いフレームワークを利用している場合は最新のフレームワークにアップグレードする作業が必要になるかもしれません。

また、これまでは5.6系からのアップグレードを前提に話していましたが、それ以前のマイナーバージョンで構築されたプログラムの場合、特に非推奨関数が普通に使われているケースでは大量の修正が発生するかもしれません。

なので、あくまで後方互換性は5.6系に対してのみ有効と考えるべきでしょう。

ともあれアップデートするか否かの判断はPHP7本体の話と言うよりも、今置かれているサイト、運用体制、人員スキルにかかっていると考えることができます。

こちらの記事も合わせてご覧ください!

まとめ

いかがでしたでしょうか?

弊社エンジニアもPHP5からPHP7にアップグレードした経験があるとのことで聞いてみましたが、意外なほど簡単に動いたので、あまり問題はないという印象を持っているとのことです。

但し先に述べたようにフレームワークのアップグレードまで一緒に行う場合はかなり重い作業が予想されます。

特に商用の会員制サイトで、課金システムも動いている。。。。のような場合は軽い気持ちでのアップグレードはできません。

よって、あくまでサイトの状況を総合的に検討した上で、アップデートの可否を判断する必要があると言えるでしょう。

フリーランスの方でこのようなお悩みありませんか?
  • 高額案件を定期的に紹介してもらいたい
  • 週2日、リモートワークなど自由な働き方をしてみたい
  • 面倒な契約周りはまかせて仕事に集中したい

そのような方はぜひ、ITプロパートナーズをご利用ください!

フリーランスの方に代わって高額案件を獲得
週2日、リモートなど自由な働き方ができる案件多数
専属エージェントが契約や請求をトータルサポート

まずは会員登録をして案件をチェック!