約 11K のファイルを含む codeigniter サイトを実行しています。
私のニーズに合わせて、コードイグナイターの基本構造を大幅に変更しました。たとえば、同じシステム ファイルを使用する 3 つのフロント コントローラーを備えた 3 つのアプリケーションがあります。テンプレートエンジンとして smarty を使用しています。私は、jquery とプロトタイプ/Scriptaculous を利用したリッチな PHP Web アプリを持っています。フォームの検証、認証、アクティブ レコード、電子メールなどを使用します。
これまでの私の経験は非常にポジティブです。
smarty のような (実際の) テンプレート エンジンを Codeigniter にプラグインすると、中規模から大規模のサイトに必要なすべての機能が手に入ります。
Codeigniter の「コントローラー」構造はそのような動作を想定しているため、サイトを大きな「メタグループ」に編成することを考える必要があります。(「ブログ」、「商品」、「フォーラム」など)
CI は、プラグインを追加するのが非常に簡単です。
このフレームワークは、そうでなければコードを渡す必要がある多くのがらくたを簡素化します。高速でシンプルで構成可能です。
これまでのところ、CI に関する私の大きな不満の 1 つは、マルチアプリケーションをあまり認識していないことです。デフォルトのレイアウトでは、1 つのアプリケーションを実行していると想定しています。私の場合、実行中のすべてのアプリケーションにプルできるグローバル ファイルを含むグローバル アプリケーションがあります。ただし、これはよりエレガントに解決できます。さらに、フロントコントローラーを切り替えるには、少し毛羽立ちを追加する必要があります.
CI の私のお気に入りの側面は、MySQL DB で簡単にアクティブなレコードを作成できることです。DB 接続をセットアップして、アクティブなレコード クエリを実行するのは非常に簡単です。
始めるのはかなり簡単だと思います。いろいろと調べて、smarty をアプリに組み込む方法を見つけてください。Codeigniter のデフォルトの「ビュー」を使用することはできますが、テンプレートに if/else ロジックが必要になった瞬間にうんざりします。
各アプリに「テンプレート」と「コンテンツ」エリアを設定し、それぞれスマートなテンプレートと静的コンテンツを入力できます。残りはDB接続から引き出すことができます。