Cleaning up unmaintained extensionsというRFCが2018/06/26に可決されました。
もはやメンテされていない古いコア拡張をざっくり削除するという、PHPとしては珍しい削減方向のRFCです。
これらは今後PHP本体からPECLへと移動になり、マニュアルにはメンテナンスされておらず開発が止まっていますのレッテルが貼られることになります。
いまのところPHP7.3で導入する予定ってなってるけど、本当に7.3で入るのでしょうか?
Cleaning up unmaintained extensions
enchant
Enchantスペリングライブラリは、EnchantをPHPから呼び出す関数です。
Enchantは各種スペルチェッカーに統一的なインターフェイスでアクセスできるというラッパーソフトウェアです。
便利そうな気はしますが、しかし現代のスペルチェッカーはリアルタイムにチェックできてこそなんぼの世界なので、PHPから呼び出す必要性は皆無ですね。
現在の対応ソフトウェアはHunspell、Aspell、Hspell、Zemberek、Voikko、AppleSpellの6種です。
自然言語よりプログラミング言語のチェッカーを呼び出せるようにした方が生き残れそう。
ftp
削除対象の中でおそらく最も影響の大きそうな拡張。
FTPはFTP接続関連の関数を提供します。
ftp_connectを使ったことのある人も多いはず。
今後はFTPコンテキストオプションやcURLを使うことになるでしょう。
gettext
GettextはGNU gettextを実装するライブラリで、PHPで最もググラビリティの低い関数_()を含みます。
国際化を提供するのですが、あまりに使い方が面倒に過ぎる。
特にlocaleに影響されるのが厄介なので、わざわざ地雷を踏むより自力で書いた方がいいでしょう。
require_once('language/string_' . \Teto\HTTP\AcceptLanguage::get()[0] . '.php');
pdo_odbc
PDO_ODBCドライバはPDOドライバのひとつで、ODBCに対応したものです。
ODBCは主にRDBMSに対して汎用的にアクセスするための共通インターフェイスということなのですが、まあそうそう上手くいくわけもなく、大抵は結局DBに特化した書き方が必要になります。
これによってIBM Db2、unixODBCにPDO接続できなくなります。
PDOではないODBC関数は生き残ってるので今後はそちらを使うことになるでしょう。
と思ったら上のデータベースと接続する際には ODBC は使用しませんとか書いてあった。
readline
Readlineは、PHPからGNU Readlineを呼び出す関数です。
こいつはPHPで対話型シェルができるというものですが、さすがにそれをPHPでやる必要はないだろうと思いますね。
pspell
Pspellはスペルチェッカーです。
概要には何も書かれてないのですが、公式サイトへのリンクがaspell.netなので実体はAspellっぽいです。
MySQLiとPDO_MYSQLみたいなものでしょうか。
sysvmsg / sysvsem / sysvshm
いずれもセマフォ関数にまとめられていて、順にSystemV メッセージ、SystemV セマフォ、SystemV 共有メモリへの対応です。
正直PHPからどのように使うべきなのかわかりません。
wddx
WDDXは言語をまたいだデータ交換機能です。
WDDXはXMLなうえWDDX関数も使い勝手が悪く、時代が下るにつれYAML、REST、JSONとどんどん簡易的な形式に変化してきました。
もはや余程の理由でもない限りjson_encode/decodeで事足りるので、わざわざWDDXを使う意義は皆無でしょう。
何故かSessionシリアライザに使えるので、うっかり使ってしまっている場合は切り替え時に全セッションデータが消えることでしょう。
感想
FTP以外はぼ影響なさそう。
PHPの場合、他言語なら外部ライブラリとして提供されるような機能がコアに入ってることも多いので、仕様の変更も色々手続きがあって大変ですね。
あとマニュアルにはコア機能もバンドルモジュールもPECLに追放されたやつも削除された機能も分け隔て無く掲載されていて分け隔て無さすぎるので、もう少し整理した方がいい気がします。
だってPECLってgemやらpipみたいなものだし、公式マニュアルにそれらのドキュメントが載るって普通は無いでしょう。