CodeIgniter 3.1と4.1の違い post

CodeIgniter 3.1と4.1の違いについて簡単にまとめていきます。

動作環境

  • CodeIgniter 3.1
    • PHP 5.6以上推奨
    • PHP 5.3.7で動作
  • CodeIgniter 4.1
    • PHP 7.3以上

重要な変更点

その他の主な追加機能

主なコーディングの違い

  • PSR-4に準拠するクラス名及びクラスファイル名
  • ビュー及びヘルパー以外の全てに名前空間が必要
    • アプリケーションのデフォルトの名前空間はApp
    • 設定の名前空間はConfig
  • $this->load->xxx()がなくなる
  • コンポーネントのロード方法
    • CodeIgniterのクラス(コアクラス、ライブラリ)
      • Config\Services
      • service()
      • session()
    • モデル
      • newする
      • Factories
      • model()
    • ライブラリ
      • newする
      • Factories
    • 設定
      • newする
      • Factories
      • config()
    • ビュー
      • view()
      • ビューは中身をechoするか、returnするか、Responseオブジェクトにセットする
    • ヘルパー
      • helper()
      • コントローラーの$helpersプロパティ
  • コントローラーは次のプロパティを自動的に持つ
    • Requestオブジェクト $this->request
    • Responseオブジェクト $this->response
    • Loggerオブジェクト $this->logger

細かな仕様変更

細かい仕様変更については、把握し切れていません。それほどないと思いますが。

  • redirect()
    • 引数と戻り値が完全に変わっているので注意
    • コントローラーからRedirectResponsereturnする必要があるため、それができない場所では使えない
  • 検証ルール
    • フォーマットのルールは空文字を許可しなくなった
    • 空文字を許可したい場合はpermit_emptyを追加する

参考

Date: 2021/02/22

Tags: codeigniter, codeigniter4