【baserCMS】PHP7.3対応

2021年1月2日

久しぶりの投稿です。
本日は、baserCMS 4.1.8におけるPHP7.3への対応です。

2019/6/12時点で最新のVer4.1.8

これを書くきっかけとしては、本日、さくらインターネットのサーバにBaserCMS 4.1.8をインストールする際にエラーが出てインストール出来なかったたためです。
(この際、サクラのPHPのバージョンは7.3)
確かに、7.3でBaserCMSを入れたことがないなーと思っていたら、CakePHPがこのPHP7.3に対応しておりませんでした。

対策

対策としては、コア(Cake)に修正を入れます。

lib/Cake/Model/Datasource/CakeSession.php 572行目

		if (empty($_SESSION)) {
			if (!empty($sessionConfig['ini']) && is_array($sessionConfig['ini'])) {
				foreach ($sessionConfig['ini'] as $setting => $value) {
					if ($setting === 'session.save_handler') {
						continue;
					}
					if (ini_set($setting, $value) === false) {
						throw new CakeSessionException(__d('cake_dev', 'Unable to configure the session, setting %s failed.', $setting));
					}

lib/Cake/Network/CakeResponse.php 1168行目

if ($modifiedSince) {
			$timeMatches = strtotime($this->modified()) === strtotime($modifiedSince);
		}
        if (!isset($etagMatches, $timeMatches)) {
            return false;
        }
		$checks = compact('etagMatches', 'timeMatches');
		if (empty($checks)) {
			return false;

この2つのファイルを書き換えれば動きはします。
動作保証はいたしません。自己責任でお願いいたします。
(おそらく次期バージョンではPHP7.3対応されると思います。)