コミュニティの要望や意見を考慮した上で、どのような未来が CI に最も適しているのかについても検討しました。その後、CI 評議会は、CI の将来についていくつかの決定を下しました。枠組み。プレビューとして、将来的には大きな変更が加えられる予定ですが、それらは将来への備えとなるだけでなく、CodeIgniter の一貫した特性であるシンプルさ、スピード、柔軟性も維持されると考えています。
この記事は将来についての簡単な概要です。これは単なる初期計画であることに注意してください。開発の進行に伴い、情報は変更される可能性があります。
CodeIgniter の最初のバージョンがリリースされて以来、PHP コミュニティは劇的に変化しました。 CodeIgniter のコア要素の多くは当時必要でしたが、PHP5 がリリースされたとき、CodeIgniter のコアはほとんど何も変更されませんでした。 CodeIgniter が今後も高いレベルでパフォーマンスを維持し、PHP フレームワークの中での地位を確立したい場合は、大きな変更が必要です。
これは、システムを完全に書き直す必要があることを意味します。コードの明瞭さを維持するために、新しい CI は別のコード ベースで開発されます。以前のコードの一部を再利用しますが、最新のクリーンなコードに重点を置くことを想定しています。
PHP 7 をターゲットにして以来、PHP 5.6 はセキュリティ保守モードに入り、数か月以内に完全に廃止される予定です。 CI は、サポートが終了する PHP バージョンの新しいバージョンをリリースしません。ホスト環境は大きく異なり、一部のプログラムは PHP 7 を完全にはサポートしていない可能性があるため、3.x ブランチはしばらく維持されます。これは、3.x の終了後の 2.x ブランチの EOL 期間よりもはるかに長くなります。解放されました。
アプリケーション ディレクトリとシステム ディレクトリの両方が PSR-4 自動ロードをサポートします。 CodeIgniter は独自のオートローダーを使用し、Composer と統合します。
ほとんどの場合、CodeIgniter 以外のプロジェクトで使用できるように、いくつかのコンポーネントをカプセル化します。
アプリケーションのパッケージとモジュールの概念は捨てます。パニックになる必要はありません。なぜなら、少なくともコントローラーとモデルに関しては、名前空間を使用してほとんどの状況に対処できるからです。ビュー、構成ファイル、ヘルパーなどのその他のものも、名前空間をサポートできるようにできると考えています。また、オートローダーにそれらの検索方法を指示することで、すべてのパッケージ機能とモジュール ルーティング機能を任意のディレクトリに配置することもできます。
ルーティング機能が更新されます。 URI をコントローラー/メソッドに直接マッピングする「マジック ルーティング」機能をオフにして、好みのルーティング方法を選択できるようにすることができます。ルーティング設定ファイルでは、「マジック ルーティング」を使用するか、各ルートを個別に指定するかを選択できます。
ロギングシステムは改善される予定ですが、具体的な詳細はまだ決まっていません。
テストには引き続き PHPUnit を使用します。これは、アプリケーションを自分でテストする必要があることも意味しますが、必要なツールは提供されます。
上で述べたように、これは古いバージョンと互換性のないバージョンである必要があります。私たちは、これがこのフレームワークにとって最良の未来であるべきだと考えています。私たちは長年にわたってこの大きな変更の基礎を築いてきました。移行をできるだけスムーズに行えるよう努めますが、提供できるコード ベースがどの程度最新化されるかはまだわかりません。
私たちは、CodeIgniter を長年にわたって人気を博してきた機能、つまりスピード、シンプルさ、「エレガントさ」を維持するために最善を尽くします。
開発プロセス全体は 3 つのフェーズに分かれています。
次のクラス ライブラリはカーネルから削除され、オンデマンドでダウンロードされます: 植字クラス、FTP クラス、ZIP クラス、および XML-RPC クラス。
Shopping Cart クラス、JavaScript クラス、Unit Test クラス、Trackback クラスは削除されます。
基本的なカーネルを備えたアルファ版を 1 年以内に完成させたいと考えています。その後、カーネルの改善と残りのパッケージの開発に焦点を当てます。ほとんどのオープンソース プロジェクトと同様、コミュニティの貢献の量と質、およびコア開発者の時間とエネルギーに依存するため、正確なスケジュールは異なる場合があります。
最初のフェーズでは、フレームワークの最も重要な部分を理解することに重点を置きます。これがフレームワークの残りの部分の基礎になります。
オートローダー
依存性注入
ログ
例外処理
HTTP リクエスト/レスポンス層 (または入力/出力)
ルーティング
コントローラ
モデル
データベース層
構成
セキュリティ
第 2 フェーズは、CodeIgniter ユーザーが望むいくつかのクラスと機能の改善に焦点を当てています。
ヘルパー
言語/国際化機能
キャッシュ
メール
暗号化
フォーム検証
画像処理クラスライブラリ
ページング
アップロードクラス
セッション
ビュー
デバッグおよび分析ツール
第 3 フェーズは主にオプションのソフトウェア パッケージを拡張するために使用されます。この時点で、すべてのライブラリの準備が整うのを待たずに、フレームワークをリリースする準備ができているはずです。
FTP
XML-RPC
Zip
植字クラス
テンプレートパーサー
私たちは、フレームワークによってもたらされた新しい機会に非常に興奮しています。新しいバージョンのフレームワークが最初の一歩を踏み出すのを待ちます。傍観するのをやめて、フレームワークの未来を構築しましょう。
著者: Lonnie Ezell (CodeIgniter 理事会メンバー)
翻訳: Hex
初版発行日 2015 年 8 月 5 日、現在, CI 4 は開発中であり、まだリリースされていません
英語原文: CodeIgniter 4 Proposed Roadmap