PHP 7.0対応 — WordPressは既に対応、Joomla!は3.5.0から

早いという噂のPHP 7.0。2015年11月に公開予定で、実際に公開されたのは2015年12月3日(現地時間、日本時間2015年12月4日)です。

上手くいけば、実行時間が半分になるかも!とか。

WordPressは最新バージョンでは既にPHP 7.0に対応していますが、Joomla!はもうすぐ出る予定の3.5.0からの対応になります。

Sponsored link

PHP 7.0.0

PHP 7は、10年ぶりのメジャーバージョンアップだそうです。

PHP-7-Zend

新機能は下記に書かれています。

なんだかだいぶ変わりますね。PHP 7に完全移行したら使ってみたい機能がたくさんありますが、PHP 5.6.0までと互換性がないと言われている部分も結構あって、移行するのがかなり大変な予感がします。

list(,,)のような呼び出しが禁止されたり、浮動小数点型を整数型にキャストしたときにオーバーフローしているとNULLになったり、プロパティの呼び出し解釈が変わったり、foreachの挙動が変わったり!

新しい機能で便利そうなのは、宇宙船演算子とNULL合体演算子(と日本語ドキュメントに書かれている)機能です。

自分への備忘録

自分でコーディングした部分では、listは理解不能なので使っていませんが、浮動小数点型のキャストは避けたつもりでどこかにあるかもしれず・・・。foreachは潜在的にバグが起こりそうな。

”PHP 5.6へ移行するときに要変更”としていたものの、5.6.0でも動いていたコードが動かなくなるかもしれず。

オブジェクトのAttributes参照関係

何でこのコードをそもそも書いたのか、記録してあったはずが消えてしまった不幸。

近そうなのは、

だけれど、だいぶ違うので、多分JoomlaのloadObjectListで探せば見つかるかも。

古い呼び出し

$tokens = $db->loadObjectList();

$tokens{0}->time

(5.6.0より前では新しい呼び出しは使えなかった)

新しい呼び出し(5.6.0以降)

$tokens = $db->loadObjectList();

$tokens{0}[“time”]

WordPressのPHP7対応

WordPressは4.4.0で既に対応しています。私もこのサイトに一時的に入れてみましたが、明らかな問題は起こらないようです。が、PHP7を入れてみたらJoomla!サイトはすべて止まってしまいました。

レンタルサーバー側でドメインごとにPHPバージョンを選ばせてくれたら良いのですが、私のサーバーは対応していません。Joomla日記のページはJoomlaなので、ここのサイトでは使えませんが、以前使っていたネットオウルのミニバードはドメインごとに選択できたので便利でした。より上位のファイアバードクローバーでもたぶん対応していそうです。

少し前に、ドメインレジストラを一部スタードメインに移行しました。スタードメインだと、ミニバードやその他ネットオウルのレンタルサーバーを使うのに使えるポイントが貰えるので、(逆にいうとサーバーを契約しないと無駄になってしまうポイントしかつかないのですが・・)近いうちにまた契約したいなと思っています。

Joomla!のPHP 7対応

現時点の最新バージョン 3.4.8では、コアでエラーが起こりサイトも管理画面も表示不能になります。

公式バージョンとしては次期バージョンの3.5.0から利用可能になるようです。3.5.0はベータはリリースされていて、2015年12月に公式アップデート予定だったはずですが、遅れています。

2015年12月の予定では、

  • January 27th 2016 – 3.5 Beta 2
  • February 16th, 2016 – 3.5 Beta 3
  • February, 2016 – 3.5 Release Candidate
  • March 9th, 2016 – 3.5 Stable Release

となっていて、3.5ベータ2は予定通り1月27日に公開されましたが、ベータ3は2月25日になっても公開されていません。(注:2月28日に公開され、現在RCが出ています

ベータバージョンにはオプトインですが匿名データ収集がつくようなので、要注意です。

コアはもうすぐ公開されそうですが、3.5.0では後方互換性を失うらしい(String型をStringHelper型に変えるために)ので、特にメンテナンスがあまりされていない拡張機能は使えなくなるものが出てくるかもしれません。(影響しないはずと公式には書かれています)

Joomla 3.4でPHPを使う機能

PHP 7を早く試したい人のために、PHP 7対応用のコードが公開されています。

詳しくは、

にかかれていますが、かなりJoomla!が早くなるようです。

設定しないデフォルトで、どこかのページを動かした場合、上記のページに貼られている結果では、

PHP 5.6 パフォーマンス

  • データーベース実行時間 : 62.5ms
  • メモリ使用量 : 8.53 MB

PHP 7.0.0 パフォーマンス

  • データーベース実行時間 : 38.5ms
  • メモリ使用量 : 2.36 MB

だそうです。これは、待ちきれません。

PHP 5.4系からPHP 5.6への移行でも(特に設定していない場合)かなり早くなったので、そのPHP 5.6とくらべて更に倍速と言われると、ワクワクが止まりません。

簡単そうだから、入れてみようかな・・・