勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ

PHP8.4 & CodeIgniter4でDateTimeImmutableエラー

  PHP CodeIgniter

CodeIgniter4.4.4がPHP8.3だと正常に動作していたが、PHP8.4の環境だと「must be compatible with DateTimeImmutable::createFromTimestamp」という致命的エラーが発生した。以下に対応方法をメモ。

 

エラーメッセージ全文

Fatal error: Declaration of CodeIgniter\I18n\TimeTrait::createFromTimestamp(int $timestamp, $timezone = null, ?string $locale = null) must be compatible with DateTimeImmutable::createFromTimestamp(int|float $timestamp): CodeIgniter\Autoloader\Autoloader in /path/to/codeigniter4/system/I18n/TimeTrait.php on line 266

 

対応方法

「/path/to/codeigniter4/system/I18n/TimeTrait.php」の266行目を以下の通り変更する。

# 変更前
public static function createFromTimestamp(int $timestamp, $timezone = null, ?string $locale = null)

# 変更後(第1引数の宣言を追加)
public static function createFromTimestamp(int|float $timestamp, $timezone = null, ?string $locale = null)

 

参考サイト

https://www.gray.me.uk/codeigniter/codeigniter-4-fresh-install-timetrait-error

 - PHP CodeIgniter

  関連記事

CodeIgniter4でCronを実行する方法
CodeIgniter4でCronを実行する方法

CodeIgniter4.4.4で特定の処理をCronで自動実行させたい。以下に ...

CodeIgniter3でCronを実行する方法
CodeIgniter3でCronを実行する方法

CodeIgniter3系で特定の処理をCronで自動実行したかった。以下に設定 ...

CodeIgniter4で祝日一覧APIにCURLでリクエストし結果をファイルキャッシュする方法
CodeIgniter4で祝日一覧APIにCURLでリクエストし結果をファイルキャッシュする方法

Codeigniter4.4.4で祝日一覧APIにCURLでリクエストしたい。尚 ...

CodeIgniter4.4.4のインストールからHello Worldページ表示まで行う方法
CodeIgniter4.4.4のインストールからHello Worldページ表示まで行う方法

以前CodeIgniter3を勉強したことがあったが新バージョンの4系がリリース ...

Codeigniter3で外部ファイル(CSS / JS)の読み込みと共通パーツ化する方法
Codeigniter3で外部ファイル(CSS / JS)の読み込みと共通パーツ化する方法

CodeigniterでCSSやJSファイル等の外部ファイル読み込みたかった。ま ...