CodeIgniter3をComposerでインストールする方法

CodeIgniterって公式サイトからzip落として展開するだけでインストールが完了するから楽ですよね。
でもやっぱり「Composerでインストールしたい!」っていう方も結構いると思います。

今回はCodeIgniterをComposerでインストールする方法を2パターン紹介しようと思います。
※Composerがインストールされていることが必須となりますので、事前にインストールしておいてください。

composerでのインストール(パターン1)

これが一番簡単なインストールの仕方になります。
パターン1はkenjis/codeigniter-composer-installerを使います。

kenjisを使ってインストール

コマンドラインを開いて、CodeIgniterをインストールしたいディレクトリに移動したら以下のコマンドを実行してください。

composer create-project kenjis/codeigniter-composer-installer codeigniter

しばらく待っていると、codeigniterというディレクトリが生成されます。

設定

application/config/config.phpを開いて、該当の個所を編集してください。

//$config['composer_autoload'] = FALSE;
$config['composer_autoload'] = realpath(APPPATH . '../vendor/autoload.php');

//$config['index_page'] = 'index.php';
$config['index_page'] = '';

さらに日本語に対応するために、コマンドラインで下記のコードを実行します。

$ cd /codeigniterをインストールしているパス
$ php bin/install.php translations 3.1.0

これで設定完了です。

composerでのインストール(パターン2)

パターン2はパターン1よりやることがいっぱいあるのでめんどくさいです。
一応こういいうやりかたもある、ということで紹介します。

composer.jsonを作成

まずはcomposer.jsonを作成します。
バージョンを指定する方は、https://packagist.org/でcodeigniterで検索してください。
codeigniter/frameworkのリンクをクリックすると、codeigniterのバージョンを見ることができます。
最新版のdev-masterを推す方がたまにいますが、dev-masterは安定していないのでお勧めしません。

{
    "require": {
        "codeigniter/framework": "3.1.5"
    }
}

コマンドラインでインストールする

composer.jsonが配置されているディレクトリに移動して、以下のコマンドを実行してください。

composer install

しばらく待っていると、自動でインストールが終了します。
vendorというディレクトリが生成されています。
vendor/codeigniter/frameworkにcodeigniterのコアシステムが入っています。

composer用にCodeIgniterを設定しなおす

このままvendor/codeigniter/frameworkにcodeigniterで作業をすることも可能です。
ですがそれではcomposerの利点をうまく使えないばかりか、composerでバージョンアップすると今までの作用内容がすべて吹っ飛びます。
ですから設定を行いましょう。

まずは/vendor/codeigniter/framework/applicationをコピーして、vendorディレクトリの外に出してください。

次にvendorと同じ階層にpublic_htmlディレクトリを作成して、
/vendor/codeigniter/framework/index.phpをコピー&ペーストしてください。

public_html/index.phpを書き換える

先ほどコピペしたindex.phpを書き換えましょう。

//100行目前後
//$system_path = 'system';
$system_path = '../vendor/codeigniter/framework/system';

//117行目前後
//$application_folder = 'application';
$application_folder = '../application';

application/config/config.phpを書き換える

コピペしたapplication/config/config.phpを修正します。

//139行目前後
//$config['composer_autoload'] = FALSE;
$config['composer_autoload'] = realpath(APPPATH . '../vendor/autoload.php');

日本語に対応させる

このままだと英語しか対応していないので、日本語対応させます。
日本語対応についてはcomposerを使わず公式サイトからファイルをダウンロードして行います。
composerを使ったやり方もあるようですが、結構強引なやり方なのでお勧めしません。

まずは公式サイトへアクセスして、「Download System Message Translations」のボタンをクリックしましょう。
遷移した先で翻訳ファイルの入ったzipファイルをダウンロードできます。
ダウンロードしたzipファイルを展開して、languageディレクトリにあるjapaneseディレクトリをsystem/languageにコピーしてください。
さらにcoreディレクトリにある、MY_Lang.phpをsystem/coreにコピーしてください。

最後に、application/config/config.phpを修正します。

//79行目前後
//$config['language']	= 'english';
$config['language']	= 'japanese';

これで日本語対応が完了しました。

まとめ

今回2パターン紹介しましたが、パターン1の方法をとるほうが簡単で安全です。

CodeIgniter3をREST APIに対応させる

2017.08.01