こんにちは、コバヤシです。
今回はSlimに続きCodeIgniterを試していきたいと思います。
CodeIgniterとは
軽量で速度を重視したオープンソースのフルスタックフレームワークです。
ライセンス問題が発生していましたが、現在は落ち着いているようです。
特に東南アジアで人気とのこと。
インストール
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拡張が必要なんですね。ドキュメントに書いてありました。
しっかり読まないと駄目ですね。
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まわりをやりたいと思います。