フルスタックかつ軽量!CodeIgniterを試す-インストール編

こんにちは、コバヤシです。
今回はSlimに続きCodeIgniterを試していきたいと思います。

CodeIgniterとは

軽量で速度を重視したオープンソースのフルスタックフレームワークです。
ライセンス問題が発生していましたが、現在は落ち着いているようです。
特に東南アジアで人気とのこと。

codeigniter.com

インストール

CodeIgniter4をComposerを利用してインストールをしていきます。

composer create-project codeigniter4/appstarter test

あれ?エラーになりました。

Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - codeigniter4/framework[4.0.0, ..., v4.2.1] require ext-intl * -> it is missing from your system. Install or enable PHP's intl extension.
    - Root composer.json requires codeigniter4/framework ^4.0 -> satisfiable by codeigniter4/framework[4.0.0, ..., v4.2.1].

うーん。
CodeIgniterはintl拡張が必要なんですね。ドキュメントに書いてありました。
しっかり読まないと駄目ですね。

codeigniter.com

ext-intlをインストールして、改めて実行し無事インストールが完了しました。

設定を変更する

.envを修正してシステムの設定をしていきます。
ドットが付いていないenvというファイルがあるので、これをコピーして使用します。

cp env .env

コピーしたら内容を変更します。

# CI_ENVIRONMENT = production

↓

CI_ENVIRONMENT = development
# app.baseURL = ''
  
↓↓↓
  
# 環境に合わせて変更
app.baseURL = 'http://xxxxxxx.xx' 

DBの設定を変更します。

# database.default.hostname = localhost
# database.default.database = ci4
# database.default.username = root
# database.default.password = root
# database.default.DBDriver = MySQLi
  
↓↓↓
  
# 環境に合わせて変更
database.default.hostname = localhost
database.default.database = xxxx
database.default.username = xxxx
database.default.password = xxxx
database.default.DBDriver = MySQLi

次に言語や時間関係です。
Config/App.phpを修正していきます。

public $defaultLocale = 'en';
  
↓↓↓
  
public $defaultLocale = 'ja';
  
  
public $appTimezone = 'America/Chicago';
  
↓↓↓
  
public $appTimezone = 'Asia/Tokyo';

最後にCSRFを有効にしておきます。
Config/Filters.phpを修正していきます。

public $globals = [
        'before' => [
            // 'honeypot',
            // 'csrf',
            // 'invalidchars',
        ],
        'after' => [
            'toolbar',
            // 'honeypot',
            // 'secureheaders',
        ],
    ];
  
↓↓↓
  
public $globals = [
        'before' => [
            // 'honeypot',
            'csrf',
            // 'invalidchars',
        ],
        'after' => [
            'toolbar',
            // 'honeypot',
            // 'secureheaders',
        ],
    ];

CSRFについては最初から有効にして欲しいところ。

これでブラウザでアクセスすると無事Welcome画面が表示されました。

まとめ

やはりSlimとは違いフルスタックだけあって、すんなり画面の表示まで持っていけました。
次回はviewまわりをやりたいと思います。