23

私は、開発の観点から、codeigniterがどれほど優れているかを読み続けています。また、フレームワークを使用すると、開発プロセスが迅速になると確信しています。しかし、私が自問する質問は、あなたのニーズに応える個別に作成されたフレームワークに違いがあるのでしょうか?

CIは、宣伝されている小さなフットプリントにもかかわらず、基本的にフレームワーク上のフレームワーク(後でPHPをCのフレームワークと呼びます)であるため、システムを「行き詰まらせる」のでしょうか。負荷を分散する良い方法はありますか?CIで作成された大規模なアプリケーションはありますか?

キャスパーに感謝します。

4

2 に答える 2

22

約 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接続から引き出すことができます。

于 2009-08-03T20:47:49.233 に答える
20

これは本当にあなただけが答えられる質問です。「大規模なシステム」について話すときは、(ページビューなどによって) 広く使用されているもの、または膨大な数のビジネス ルールが含まれているが少数の人しか使用していないものを意味する場合があります。アプリケーションは高速である必要がありますか、それとも複数のサーバー間で負荷を分散できますか?

あなたの「PHPはCのフレームワークです」というコメントは、IMOです。いいえ、PHP は C ほど高速ではありません。しかし、Web リクエストの処理ははるかに優れています。PHP は、世界最大級のサイトのいくつかで使用されています。Facebook は、もともと完全に PHP で書かれていました。Yahoo は PHP をかなり使用しています。そのため、データベースがほぼ常にボトルネックになることを考えると、PHP はほぼ誰にとっても十分に高速です。PHP アプリケーションの速度が低下している場合は、memcache / ロード バランサーを使用するか、ネットワークにアプリケーション サーバーを追加します。PHP の端をスケーリングするのは非常に簡単です。

私が言えることは、他のフレームワークとの簡単な比較です。私は限られた展開で CI を使用し、主に他の人を助けましたが、私が見たものは気に入っています。これは、CakePHP のようなものよりも実行時の速度が向上しますが、開発時間が長くなります (Cake の最大の強みは、迅速に開発および展開できることです)。速度に関しては、Zend や Symfony にかなり匹敵するように感じますが、生の PHP を自分で書くよりも約 5 倍から 7 倍遅くなります。

さまざまなフレームワークを要約すると (NB: 以下の私の意見):

  • CakePHP は迅速な開発に最適です。そのパフォーマンスは主要なフレームワークの中で最悪ですが、1.3 リリース (近日公開予定!) では、無料で (API に変更はなく、PHP4 サポートを削除するだけです) 25% の速度向上が得られるはずです。これは ActiveRecord に重点を置いており、フル機能のサイトを立ち上げて実行するのに非常に高速です (真剣に、真剣に迅速な開発 / プロトタイピング チョップ)。
  • Zend が最も広く使用されています。モジュールを追加することで、最も柔軟性があります。特に軽量ではありませんが、超高速です。エンタープライズ プロジェクトの場合は、これまたは symfony を使用します。私にはさまざまなライブラリを使用しているように感じます。そして、それらの命名規則は少し面倒です...
  • Symfony - Zend のコメントを参照してください。symfony はさらにエンタープライズ向けであるはずですが。
  • CodeIgnitor は、ブロックの新しいホットな子供です。「フレームワーク」でありながら邪魔にならないようにすることに重点を置いています。つまり、仕事をより速く行うのに役立つツールです。実行は高速ですが、開発は少し遅くなります。
于 2009-07-22T17:25:19.787 に答える