最近、いくつかの主要な外国人のPHPフレームワーク(国家の枠組みは含まれません)より全国で電流の単純な比較を使用して、何をすべきかの枠組みを選択するために、これらの直感的な感情を、単純な共有のための一般的なフレームワークがある場合右時に参照。
参照のメインフレームが含まれます:CodeIgniterのは、CakePHPが、ZendFramework、symfonyの。私は真剣に、または、単にビット未熟をしようとすると、フレームワークの多くを使用していない多くの意見を参考にすることができるが間違っている、ご一緒に成長して、私を修正してください。
CodeIgniterの
利点:
1は、単純な構成では、すべての高効率化の実装を設定するにはPHPスクリプトを使用するように構成;基本的なルーティング機能と、ルーティングのある程度、予備的なレイアウト機能、見て、ある程度の生産と感じることができる;良いパッケージのデータベース層MVCの基本的な機能と
2高性能を実装するためにクイック単純で小さなコードは、フレームワークの詳細は、研究では、低コスト、ドキュメントを使用して簡単に、単純で、R1.02の多くに付属のライブラリを、小規模なアプリケーションのためのフレームワークを使用して簡単に
短所:
1単純なデータベース操作として解釈モデル層
2。Frameworkのやや単純な小さなアプリケーションでは満足することができ、少し中規模のアプリケーションのニーズを満たすことができる
評価:
レイアウトのある程度を構築しながら全体的に見て、まだ価値が迅速かつ容易にCodeIgniterのアプリケーションを完了するまで、簡単なテンプレートの再利用、データ操作層は、良好なパッケージであり、CodeIgniterは多くのデザインパターンも実装するために複雑であり、使用していないパフォーマンスとコードの読みやすさは良いです。追加のライブラリとしても、単純な善と効率的です。
CakePHPの
利点:
1 CakePHPはほとんどのデザインモードを含むRoRのフレームワークに似ていますが、Active Recordのデータベース操作手段と、設計レベルが非常に洗練されてではなく、独自の追加のライブラリは、すべての関数は、純粋なフレームワークですか、効率が悪いわけではない、データベース層hasOneのは、hasMany関数は、非常に複雑なビジネスプロセスに適した強力で、ルーティング、設定が悪いことではありません。自動的に非常に強いです(足場)足場構築し、中規模サイズのアプリケーションに適して、MVCの基本的な実現をそれぞれの層の上に;自動操作コマンドラインでスクリプト;
図2は、全体の文書の比較、それらのほとんどは知っている、国のさらなる成功を促進するためにCakePHPが、学習コストが中程度のこと
短所:
1。CakePHPは非常に深刻な問題が真剣に加えて、データベースの外側を操作する能力に影響を与えているデータベースレイヤ操作のためのモデルの理解している
2 CakePHPのキャッシュ機能を少し弱い、および構成機能をやや弱い; CakePHPは大規模なアプリケーション、中小アプリケーション用のアプリケーションのみ、学習のやや高いポイントのコストには適していません
評価:
全体的にみて、PHPフレームワークCakePHPのフレームワークは、時代の重要な代表者を表して、現在の重要な役割を果たしている、多くの人が道のCakePHPフレームワークの独自のコピーを作成する必要は、マイルストーンの製品です。CakePHPが明らかにRoRののまた、好みがあるまた、Web2.0のサイトの開発フレームワークをするために使用される。迅速なアプリケーション開発とプロトタイピングのアジャイル開発手法は、モデルのみのデザインのアイデアをされているデータベースの操作に最適なツールです。
Zend Frameworkの
利点:
1は関係者が生産、ライブラリの多くが付属して、フレームワーク自体は、非常にエレガントな構造を、媒体の効率書いてデザインパターンの多くを使用しています。MVCデザインは、比較的単純な、ルーティング機能を持つ、より強力な設定ファイルには、(処理するためにXMLとPHPは、INI)、図書館の様々な非常に強力ですが、すべての機能をPHPフレームワーク、最もだけではなく、フレームワークを含む、包括的で、その主な特徴は大きなクラスライブラリ(PEARの代わりに)です。し簡単に他のローダ機能を使用してロードすることができるモデル層(CodeIgniterの対応でき、CakePHPより強い)外部のデータベース操作を直接サポートに加えて、とで新たにクラスを追加;キャッシュ機能は、バックエンドのキャッシュキャッシュのサポートを正面から、非常に強力ですが、Memcacheのは、APC、SQLiteは、ファイルやその他の方法のキャッシュバックエンドのサポートは、データベース操作関数は、非常に強力です(アダプタ)ドライバのさまざまなサポート
2、次の費用は、学習資料は、国の非常に完全な、非常に成熟した社会、および使用今では多くのWeb 2.0サイトです
短所:
1。MVCの完全な機能が弱い、ビュー層単純な実装(同じことを達成していないように)、フロントページではない、非常に強力なコントロール
2いいえ自動化されたスクリプトは、すべてのエントリの独自の手作り、高コストを持っている、インポートファイルを含むアプリケーションを作成する
媒体として3 Zend Frameworkのアプリケーションフレームワークでは大きな問題とすることができますほとんどの大規模なアプリケーションのためのフレームワークが、非常に大規模なPHPフレームワークは、成熟したが、としてもいくつかの努力が必要になる
評価:
公式のフレームワークとして制作は、Zend Frameworkの野心はワンストップサービスのためのフレームワークを提供する数多くの強力なライブラリパッケージは、しかし、他のフレームワークを絞り出すしようとすると、予測され、開発チームは非常に強いですが、十分に完全があるそれは完璧なフレームに多くの時間がかかる場合非常に強い出てくる製品を開発する能力は、それが有望Zend Frameworkを決定するために不可欠です。同様に、Zend Frameworkには十分な完璧ではないビューレイヤーは、将来に依存している自動化されたスクリプトなどなど、いくつかの機能を達成するが、Zendの公式マスターの、より高度なデザインコンセプトが多いこと、比較的エレガントな建築様式自体がアップグレードしてください。全体的に、最も期待さZend Frameworkはフレームワークは、もちろん、今、あなたのプロジェクトは何の問題もなく完了した配置しなければならないことです。
symfonyの
利点
私は最も強力なを知っている1 symfonyはPHPのフレームワーク、および私は、長い時間を使って多くの機能はまだ発掘は、MVCの層の完全な実装では、すべてをカプセル化し、$ _POSTを含む、$は、データを_GETが、例外処理は、データの検出をデバッグ、パワフルなキャッシュ機能を、自動負荷クラス(この機能はとてもクールだ)、国際化サポートの強力な状態を含みますでとても強力なビュー層の操作を含む複数のファイルをフラグメント化されることがある単一のそして、そのクラスのすべての自分の任意の定義であるsymfonyは自動的に(自動負荷)クラスをロードします;非常に強力な設定機能は、使用yml設定では、すべてのフレームをして実行すると、たくさんの人たちは言葉を作るに強いの動作を制御することができますと、複数のアプリケーションのニーズを満たすために、プロジェクトの下で アクション、それぞれの層を定義することができます - アプリケーション - - モジュールプロジェクト:;自由に呼び出すことができるプログラムで強力なマルチレベルのプロジェクトとアプリケーションの管理が含まれます独自のライブラリは、構成ファイル、レイアウト、非常に強力なコマンドライン機能、プロジェクトの設立など、モジュールを作成するキャッシュなどを消去、アプリケーションを構築する。
2。symfonyの使用は、大幅に開発コストを節約するため、クラスの後にクラスに基づいてプロジェクトで定義されて時間をかけて共同作業が、問題はない、任意のモジュールを再利用することができますsymfonyは、間違いなく大規模複雑なプロジェクトを開発するための最初の選択肢は、再多くのコード
短所:
1。推進とCreole使用してデータベースのヘビー級のオペレーティングモデルが、私はそれらのアドオンに移動されているテストバージョンでは可能性がありますかではない可能性があります
2キャッシュは、symfony、symfonyはオフにして、キャッシュを再構築するRC CCの実行する必要があるキャッシュは常に開発とデバッグされるたびに、制御することはできません。
3効率は、特に設定ファイルを解析する際に、高されていないテンプレートと読書のプロセスは、時間をたくさん過ごす。
4学習コストが高く、任意の成熟した社会は、ドキュメントではなく、さらに中国語マニュアル、すべての機能をマスターに対応がない、あなたはより多くの時間を費やす必要が
評価:
symfonyは確かに、エンタープライズレベルのフレームワークは、競争に何か強力なJavaフレームワークと思われる領域のみです。強力なもの、自然学習の複雑なだけでなく、プロジェクトより便利に対応する開発、自然の複雑なプロジェクトはsymfonyを使用することをお勧めします、それに対処するため、それは価値があると思う、後者は比較的低メンテナンスコストは、再利用性が非常に強いです。は、対応するsymfonyはすべてのより複雑なインターネットプロジェクトする必要があります使用する場合は、それは、あなたはsymfonyはデータベース操作のレベルが付属して放棄する必要はもちろん、独自の定義を必要とするデータベースの分布の対応する問題を考慮する必要があり、symfonyは任意のをサポートしています構造モデルの層。
概要
いくつかのフレームワークは、独自の特性を持って以上とされる一般的なCodeIngiterのオープンソースプロジェクトをが、プロジェクトのためのフレームワークと同じではない、より小規模なプロジェクトに適して、CakePHPとZend Frameworkは、中規模のプロジェクトに適しています、symfonyはより適切な大規模プロジェクトのヘビー級、ときに、プロジェクトの選択、我々は完全にニーズの変化に応じて変更される場合は、各プロジェクトが確認できないため、フレームワークは、スケーラビリティをカスタマイズすることができます考慮する必要があります。
比較的業務やデータ処理クラスを高めるために非常に便利である、クラスのモデル層をカスタマイズする自由、特に、変化に対処するために比較的強い能力をZend Frameworkとsymfonyはすることができますすることができます言えば、私は個人的枠組みの中で大規模なプロジェクトの使用を推奨します。
CodeIngiterは、CakePHPの中小プロジェクトの開発と迅速なプロトタイプ作成をする上で重要な役割を果たすことができると同じ、ターゲットが非常にプロジェクトをクリアのプロトタイプの開発には適していません。
もちろん、おそらく、フレームワークは、より適切な記述する。
の評価のための一般的な枠組み、いくつかの多くのことがポイントされていないこと、我々は暫定的に同じ景色を探して推定し、提案を歓迎して訂正です!