どurakuの作ったもの、作ろうとしているもの、作ろうとしていたものの近況。beta1が今年の3月でしたので最初のベータ版からおおよそ6カ月でのRCリリースとなりました。RC1のパッと見た感じを記事にしたいと思います。個人的にトピックな点に触れていくので細かな違いはドキュメントを参照してみてください。3でもComposer(PHPのパッケージ管理ツール兼オートローダー)で導入されたライブラリや独自定義のクラスをComposerのオートロードで読み込んだり、名前空間の定義されたクラスをアプリ内に含めたりnewしたりする事は出来ていたのですが、CodeIgniter自体をComposerで導入したり、CodeIgniter自体や作っていくコントローラやモデルなどで名前空間を使っていくようになりました。Composerでの導入は必須ではなく、これまで通り圧縮アーカイブでダウンロードして配置して動かす事も出来ます。この辺りの選択肢を残しておくのはCodeIgniterらしくていいですね。PHPUnitを入れない場合)は数パッケージしか依存関係が有りません。少なければ良いという訳ではないですが、フレームワークの全ての機能がそれぞれパッケージのようなSymfonyやLaravelに慣れていると方向性の違いを感じますね。4でもJSON/XML形式でのレスポンス返却が簡単になりました。200で返してくれます。渡すのがarrayで良いってのはCodeIgniterっぽいですね。respondはコンテンツネゴシエーション機能が文脈によってJSONではなくXMLを返したりします(WebブラウザでアクセスするとXML形式で表示されます)。この辺りは常にJSONを返したりなど設定変更可能です。他の形式での返却も追加できるようです。使う場面・使わない場面有るとは思いますが、簡易?ORMが追加されました(ドキュメント上ではORMとはよばれずModel、Entityと記載)。これまで通りの直書きSQL+変数の自動エスケープ有りバインディングであったり扱いやすいクエリビルダも利用可能です。バリデーション対応、変更できないプロパティの指定に対応、JSON←→Arrayの自動変換などある程度の機能が揃っているようです。どの程度まで使い込めるのかは触っていないので正直まだ分からないのです。基本は変わらないコントローラルーティング方法がシンプルだからCodeIgniterが好きと言う人は結構いるんじゃないでしょうか(想像)。4でもそのまま利用できます。Controllerクラスを継承する必要が有ったり、渡された値はInputクラスではなくIncomingRequestから取得するようになっていたりなど差は有るのでその辺は新しい作法にのっとっていく形になります。あとはアプリケーションのエラーを返す際にshow_error関数を呼ぶのではなくコントローラ内で例外をスローするようになっていたりするのも最近のフレームワークっぽいですね。あとは使いたい人だけ使う形で良いと思いますが、Laravelにも有るようなReutfulなルーティングをまとめて用意する機能が追加されていたりします。APIを数作っていく場合は楽になるかもしれませんね。3まではコントローラ(というかCI_controller)がサービスロケータとして機能しており、更にそれがあらゆる場所から利用できていましたがこれは無くなりました。newされたインスタンスを取得するようになります。基本的にはコントローラ内で必要なインスタンスをServiceとして取得、あとはコンストラクタインジェクションやメソッドインジェクションで注入という方向性のようです。CI_loaderっぽさも残っていてシンプルなので移行はしやすそうですね。これがサービスプロバイダ的な感じですね。ここでオブジェクトを生成して返します。上記で生成される仮で作ったライブラリです。コントローラ内からオブジェクトを取得して利用します。.envでの設定に対応.env形式のファイルでフレームワークの設定値を上書きするような事が可能になります。Symfonyなど他のフレームワークで見かける様な物と同様に、環境ごとに変更したい設定が有る場合は.envファイルを用意する事で変更が可能です。5424)になりました。DEBUGとERRORの間のレベルが欲しいと思う事が多かったので地味に助かるポイントです。他のPSR-3を実装するロガーへの入れ替えも可能なようです。3との細かい違いはそれなりに有ります。3のコントローラやモデルのコードはそのままでは動作しません。私がCodeIgniterの方向性だと(個人的に勝手に)思っている「薄く必要最低限で過剰に何かせずに分かりやすい感じ」はそのまま引き継がれているんじゃないかなという印象です。3のその部分が好きだったけど流石にもう設計の古さを感じるなという部分(名前空間非対応で有ったり)がアップデートされているので、悪くはない選択肢の一つになれればいいなぁという感想です。引っかかる項目が増えたようでWordPressのコンパネにログインができなくなりました。内容を確認の上で除外ルールを3つほど追加し正常にコンパネが利用できる状態に。この辺り環境によっても設定している除外ルールは様々かと思いますが、もし5.2.3更新以後に引っかかる場合は確認してみてください。