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 に移行する
を参考に作業を行う。
ファイルの移動・置換
- systemディレクトリ内のapplicationディレクトリをsystemと同じ階層に移動
- 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
へ移動