2020年秋に、PHP8がリリースされる

PHP5から、PHP7に乗り換えるときに、いろいろと動かなくなって苦労した記憶がある。今度は、今年の秋にPHP8がリリースされる。PHP7との互換性は、多少損なわれているそうなので、また、移行の苦しみがあるようだ。

自分で、PHPを使ったプログラムは開発していないけれど、PHPのアプリケーションは使っているので、しばらくは対応待ち。そのあとで、移行がある。そして、また、微妙に動かない部分が出たり、忘れた頃に不具合が見つかったりするのだろう。PHP8が出たあとの移行は、すんなりと行くだろうか。

https://forest.watch.impress.co.jp/docs/news/1261630.html

WordPressのcocoonテーマでエラーが出る

WordPressのcocoonテーマで、下記のエラーが表示される。

/wp-content/themes/cocoon-master/lib/open-graph.php(356)

調べると、curlを使った処理でエラーになっていた。PHPのモジュールでcurlが入っているかみたところ、インストールされていなかった。FreeBSDのパッケージからcurlのモジュールをインストールして、apacheを再起動した。これで、解決した。

 pkg install php73-curl

WordPressで、xml_parser_create()のエラーが発生した

PHPをPHP5.6からPHP7.3に上げたところ、Wordpressで以下のエラーが発生した。

Fatal error: Uncaught Error: Call to undefined function xml_parser_create()

PHPのオプションで、xmlに関するモジュールがインストールされていないことが原因だった。FreeBSDでパッケージからインストールしているので、下記のようにpkgコマンドでインストール。その後、Apacheを再起動し、無事にエラーは解消。

pkg install php73-xml-7.3.8 

php56からphp73にあげたら、pukiwikiのRSSリーダーでエラー

PHP5.6からPHP7.3にアップデートしたところ、pukiwikiでエラーが発生。このエラーの前に、pukiwikiはPHP7対応版の1.5.2にバージョンアップした。アップグレード用のパッチを当てたが、それでも下記のエラーが発生した。

Parse error: syntax error, unexpected 'new' (T_NEW) in /usr/xxxxxx/xxxxxx/wiki/plugin/rssreader.inc.php on line 56

エラーを調べてみると、PHP7では「NEWで生成されたオブジェクトは参照として代入できない」ので、エラーになっていることが判明。とりあえず、動作するようにしたかったので、参照渡しをやめるようにコードを変更した。

変更した記述は、下記。

   //変更前
   //$r =& new XML_RSS($rdf);
   //変更後 =& を = に変更。エラー原因の参照渡しをやめている。
   $r = new XML_RSS($rdf);

参考

https://www.shirokuma-systems.com/seisaku/wordpress/284.html
https://www.slideshare.net/yohgaki/php56php70