CodeIgniter 1.7.3 から 2.0.2へ移行してみた

CodeIgniter 1.7.3 から 2.0.2へ移行してみた

1.7.3でとあるサービスを開発していたが、保守終了となるみたいなので、
開発初期段階だしサラッと2.0.2へ移行してみた。


『Webサイト制作者のためのPHP入門講座』の CodeIgniter アプリを CodeIgniter 2.0.0 に移行する
を参考に作業を行う。

ファイルの移動・置換
  1. systemディレクトリ内のapplicationディレクトリをsystemと同じ階層に移動
  2. systemディレクトリ内の残りのファイルとディレクトリを2.0.2のものに置き換える
ドキュメントルート直下にあるindex.phpを編集

ドキュメントルート直下にあるindex.phpには、
system_path(systemディレクトリへのパス)
application_folder(applicationディレクトリへのパス)
が設定されているので変更があれば変更する。

コントローラ、モデルが継承しているクラス名を変更

コントローラは CI_Controller を、モデルは CI_Model を継承するように変更されため
application/controllers
application/models
内のソースで該当の箇所があれば変更する。

class Hogehoge extends Controller
  ↓変更
class Hogehoge extends CI_Controller
class Hogehoge extends Model
  ↓変更
class Hogehoge extends CI_Model
親クラスのコンストラクタの呼び出し部分も変更する
parent::Controller();
  ↓変更
parent::__construct();
parent::Model();
  ↓変更
parent::__construct();
ページにアクセスして動作確認

私の環境では下記のエラーが出た

An Error Was Encountered
In order to use the Session class you are required to set an encryption key in your config file.


CodeIgniter 2.0からは、設定ファイルの暗号化キーが設定されていないとこのエラーが出るため、
application/config/config.phpに暗号化キーを設定する

$config['sess_encrypt_cookie'] = TRUE;
$config['encryption_key'] = "";//32文字のランダムな文字列を設定してください。
個人的対応

CodeIgniterでindex.phpを消すためのmod_rewrite設定 @さくらのレンタルサーバ その2
の設定をCodeIgniter 2.0.2に対応するため、
system/application/libraries/MY_Config.php

system/application/core/MY_Config.php
へ移動