設計とアーキテクチャのゴール
CodeIgniterのゴールは 最小かつ可能な限り軽量なパッケージで、パフォーマンス・許容性・柔軟性を最大化することです。
このゴールを達成するため、私たちはベンチマークを行い、リファクタリングし、開発プロセスを単純化し、 この目標にそぐわないあらゆるものを捨て去りました。
技術的・設計的視点に立つと、CodeIgniter は次の目標にもとづいてつくられているといえます:
- 動的なインスタンス化。CodeIgniterでは、グローバルに読み込んだり実行したりせず、必要とされたときだけ、コンポーネントをロードし、処理を実行します。システムが動作するのには、最低限のコア以上のものを前提としないので、システムはデフォルトでは大変軽量です。HTTPリクエストなどをトリガーとして起こるイベントで、そして、プログラマが設計したコントローラやビューで、何を呼び出すかを定義します。
- 疎結合。 結合とはシステムのコンポーネントが互いに依存している度合いのことです。互いのコンポーネントの依存度が低ければ低いほど、システムは、再利用性が高まり、柔軟になります。私たちのゴールは、非常に「疎」に結合されたシステムです。
- 凝集化されたコンポーネント。 凝集性は、コンポーネントがどれだけ狭い範囲に集中した目的を持っているかという度合いのことです。CodeIgniterでは、各クラスやメソッドは、利用性を最大限にするため、高度に独立したものになっています。
CodeIgniter は、高度に凝集化されたコンポーネントで構成され、動的にインスタンス化される疎結合のシステムです。省スペースのパッケージに単純さと柔軟さ、そして高いパフォーマンスを詰め込むよう考え抜かれているのです。