PEAR MDB Mail\Queue をPHP7対応させる案件の楽しいお話
PEAR MDB Mail\Queue をPHP7対応案件の楽しいお話
※ご注意 MDB2の話ではありません。MDB Mail\Queueの話です
この記事はHP Advent Calendar 2018に参加しています。
MySQL関数からMySQLi関数へ移行
MySQL関数が各所にちりばめられているので全て補正する。
MySQLi関数への移行が低コスト
一部関数において引数が省略または逆になっているので注意。
詳細は丁寧にまとめられている下記から
MySQL関数からMySQLi関数への移行作業メモ
preg_replaceのe修飾子をpreg_replace_callback で置換
PHP7でpreg_replaceのe修飾子の挙動が変わるので要注意です。
こんなやつ
<?php
$hdr_value = preg_replace('\([\x80-\xFF])\e',
'"=" . strtoupper("\1")',
$hdr_value);
↓preg_replace_callback で置換
<?php
$hdr_value = preg_replace_callback(
'\([\x80-\xFF])\',
function ($matches) {
return strtoupper($matches[0]);
},
$hdr_value);
dl()
PHP 5.3 以降で大半の SAPI からは削除されました。 また、PHP 7.0.0 では PHP-FPM からも削除されました。
問題記述部分をコメントアウトで対応wでもうごく