勉強したことのメモ

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

PHP8.4 & CodeIgniter4でDateTimeImmutableエラー

  CodeIgniter PHP

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

 - CodeIgniter PHP

  関連記事

Codeigniter4で独自・外部ライブラリの作成と呼び出し方法
Codeigniter4で独自・外部ライブラリの作成と呼び出し方法

Codeigniter4で独自ライブラリを作成し、コントローラー側で呼び出したい ...

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

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

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

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

CodeIgniter3で共通の変数と定数を設定する方法
CodeIgniter3で共通の変数と定数を設定する方法

CodeIgniter3系で共通する配列が入った変数と、定数を設定したかった。以 ...

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

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