ホームページ >バックエンド開発 >PHPチュートリアル >海外の主流PHPフレームワークの比較
海外の主流PHPフレームワークの比較
【転載元】http://tech.it168.com/a2009/0203/264/000000264249.shtml
?
????? 最近、中国で使用されている主流の海外 PHP フレームワークをいくつか使用してみたので、どれを使用するべきかについて簡単に説明したいと思います。フレーム選びの参考にしてください。
主なリファレンス フレームワークには、CodeIgniter、CakePHP、ZendFramework、Symfony が含まれます
注: 私は多くのフレームワークを真剣に使用したことはありません。簡単に試しただけです。私の意見の多くは未熟であるか間違っている可能性があります。修正して一緒に成長させてください。
【 CodeIgniter 】
公式ウェブサイト: http://codeigniter.com
中国語 Web サイト: http://codeigniter.org.cn
中国語マニュアル: http://codeigniter.org.cn/user_guide
ビデオ チュートリアル: http://codeigniter.org.cn/tutorials
テストバージョン: CodeIgniter_1.6.1
利点:
1. 構成がシンプルで、すべての構成が PHP スクリプトを使用して構成されており、実行効率が高い; 基本的なルーティング機能があり、ある程度のルーティングを実行できます。インターフェイスの外観。データベース層はよくパッケージ化されており、基本的な MVC 機能が備わっています
2. 高速かつ簡潔、コード量が少なく、実行パフォーマンスが高く、フレームワークがシンプルで、使いやすく、学習コストが低く、詳細なドキュメントが多く、シンプルで使いやすいライブラリが付属しており、フレームワークは次のような用途に適しています。小規模なアプリケーション
欠点:
1. モデル層をデータベース操作として単純に理解します
2. フレームワークはやや単純で、小規模なアプリケーションのニーズのみを満たすことができますが、中規模のアプリケーションのニーズを満たす能力は若干劣ります
評価:
一般に、CodeIgniter を使用してシンプルで高速なアプリケーションを完成させることは価値があります。同時に、データ操作層が適切にカプセル化されているため、ある程度のレイアウトを構築できます。 さらに、CodeIgniter は複雑すぎる設計パターンをあまり使用していないため、実行パフォーマンスとコードの可読性の両方が良好です。追加のライブラリに関しては、シンプルで効率的で悪くありません。
【 CakePHP 】
公式ウェブサイト: http://www.cakephp.org
中国語マニュアル: http://www.1x3x.net/cakephp
ビデオチュートリアル: http://search.you.video.sina.com.cn/s?key=cakephp
テストバージョン:cake_1.1.19.6305
利点:
1. CakePHP は RoR に最も似たフレームワークであり、データベース操作の設計方法とアクティブ レコード方法を含め、設計レベルは非常に洗練されており、無駄がありません。 ライブラリ、すべての関数は純粋なフレームワークであり、データベース層の hasOne、hasMany の実行効率は非常に優れています。 この機能は非常に強力で、複雑なビジネス処理に適しています。ルーティング機能と構成機能は悪くありません。基本的に MVC のあらゆる側面が実装されています。 レイヤーにはコマンドラインスクリプトを自動で操作する機能があります。
2. ドキュメントは比較的完全で、中国ではほとんどの人が CakePHP を知っており、学習コストは中程度です欠点:
1. CakePHP の非常に深刻な問題は、CakePHP がモデルをデータベース層の操作として理解していることです。これは、データベース以外の操作能力に重大な影響を及ぼします
2. CakePHP のキャッシュ機能と設定機能は少し弱いです。CakePHP は大規模なアプリケーションには適しておらず、中規模のアプリケーションにのみ適しており、小規模なアプリケーションの場合は学習コストが若干高くなります。
評価:
一般に、CakePHP フレームワークは非常に重要な時代を代表する PHP フレームワークであり、現在、多くの自作フレームワークが CakePHP メソッドを模倣して非常に重要な役割を果たしています。 CakePHP は、RoR のアジャイル開発手法と、データベース操作を唯一のモデルとして考慮するという設計思想を明らかにしています。これは、迅速なアプリケーションとプロトタイプを同時に開発するための優れたツールです。 同様に、Web2.0 Web サイトに使用される開発フレームワークも選択する価値があります。
【Zendフレームワーク】
公式ウェブサイト: http://framework.zend.com
中国語マニュアル: http://www.phpeye.com/zf
ビデオチュートリアル: http://framework.zend.com/docs/screencasts
テストバージョン: ZendFramework-1.5.0
利点:
1.公式製品、たくさんのものが付属しています ライブラリ、フレームワーク自体は多くの設計パターンを使用して記述されており、アーキテクチャは非常にエレガントで、実行効率は中程度です。MVC 設計では比較的シンプルで、ルーティング機能があり、構成ファイルは比較的強力です (処理可能) XML および php INI)、さまざまなライブラリ これは非常に強力で、すべての PHP フレームワークの中で最も包括的な機能を備えています。これには、フレームワークであるだけでなく、(PEAR に代わる) 大規模なクラス ライブラリも含まれており、データベース操作以外の操作も直感的にサポートできます。 CodeIgniter と CakePHP の外部のモデル層 強力)、ローダー関数を使用して他の新しく追加されたクラスを簡単にロードできます。キャッシュ関数は非常に強力で、フロントエンド キャッシュとバックエンド キャッシュの両方をサポートします。 キャッシュはMemcache、APC、SQLite、ファイルなどをサポートしており、データベース操作機能は非常に強力であり、さまざまなドライバーをサポートしています。 (アダプター)
2. ドキュメントは非常に充実しており、国内コミュニティは非常に成熟しており、現在多くの Web 2.0 Web サイトで使用されており、学習コストは中程度です
欠点:
1. MVC 機能は比較的弱く、View 層は単純に実装されている (実装されていないのと同じ) ため、フロントエンド ページを強力に制御することはできません
2. 自動スクリプトを使用しない場合、エントリ ファイルを含むアプリケーションの作成は手動で構築する必要があり、エントリ コストが高くなります
3. Zend Framework は、中規模アプリケーションのフレームワークとしては大きな問題はなく、大規模アプリケーションのフレームワークとしてはかろうじて使用できますが、非常に成熟した大規模 PHP フレームワークとしては、まだ必要があります。もう少し努力してください
評価:
公式フレームワークとしての Zend このフレームワークの野心は、他のフレームワークを排除すると同時に、多くの強力なクラス ライブラリをカプセル化してワンストップ フレームワーク サービスを提供したいと考えていることは明らかです。さらに、その開発チームは非常に強力で十分な能力を持っています。 私たちは非常に強力な製品の開発に努めているため、フレームワークの改善にさらに時間を費やせば、Zend Framework に明るい未来があることは基本的に確実です。ゼンドも同様に、 フレームワーク アーキテクチャ自体も比較的洗練されており、これは Zend 公式に多くの専門家がおり、設計コンセプトが比較的先進的であることを示していますが、ビュー レイヤー、自動化などの一部の機能は完全には実装されていません 化スクリプトなど、これらはすべて将来のアップグレードに依存します。一般的に、Zend Framework は最も期待されているフレームワークです。もちろん、今プロジェクトで使用したい場合には問題ありません。
【シンフォニー】
公式ウェブサイト: http://www.symfony-project.org
中国語 Web サイト: http://symfony-project.cn
権威あるガイド: http://www.symfony-project.org/book
学習リファレンス: http://sf.thecodecentral.com
テストバージョン: symfony-1.0.13
利点:
1. シンフォニー これは私が知っている中で最も強力な PHP フレームワークであり、私は長い間使用してきましたが、多くの機能はまだ発見されていません。MVC の 3 つの層を完全に実装し、以下を含むすべてをカプセル化します。 $_POST、$_GET データ、例外処理、デバッグ機能、データ検出には、強力なキャッシュ機能、クラスの自動ロード (この機能は非常に優れています)、強力な i18n 国家化サポート、非常に強力なビュー レイヤー操作が含まれます。 複数のファイルを部分的に含めることができ、yml 設定を使用してすべてのフレームワークとプログラムの実行動作を制御する非常に強力な機能で、独自のさまざまなファイルを自由に定義できます。 クラス、symfony は自動的にロードできます (auto ロード) これらのクラスはプログラム内で自由に呼び出すことができ、強力なマルチレベルのプロジェクトとアプリケーション管理が含まれます: [プロジェクト] --> [アプリケーション] -->モジュール --> アクションは、1 つのプロジェクトの下で複数のアプリケーションのニーズを満たすことができ、各レイヤーは、プロジェクトの作成、作成など、独自のクラス ライブラリ、構成ファイル、レイアウトを定義できます。 適用、モジュールの作成、キャッシュの更新など;
2. Symfony は、大規模で複雑なプロジェクトを開発する場合の最初の選択肢です。Symfony を使用すると、開発コストが大幅に節約され、複数の人が共同作業する場合に問題が発生しないためです。基本的なクラスがプロジェクト レベルで定義された後は、任意のクラスを使用できます。モジュールは再利用可能、コードを大幅に再利用可能
欠点:
1. データベース操作モデルは重量級の prop と creole を使用していますが、私がテストしたバージョンでは、それらはアドオンに移動されており、使用できるかどうかは関係ありません
2. キャッシュ機能は制御できません。キャッシュをクリアして再構築するには、symfony cc、symfony rc を実行する必要があります。
3. 効率はあまり高くありません。特にテンプレートの解析と設定ファイルの読み取りのプロセスには時間がかかります。4. 学習コストが非常に高く、中国には成熟したコミュニティやドキュメントが存在せず、そのため、すべての機能を習得するには多大な時間がかかります。
評価:
Symfony は間違いなくエンタープライズレベルのフレームワークであり、Java 分野の強力なフレームワークと競合できる唯一のものであるように見えます。強力なものは当然ながら習得が複雑ですが、プロジェクト開発にも比較的役立ちます。 これを助けるために、複雑なプロジェクトを処理するには Symfony を使用することをお勧めします。その後のメンテナンスのコストが比較的低く、再利用性が非常に高いため、その価値はあると思います。同様に、Symfony を使用する場合は、より複雑になるはずです。 インターネットプロジェクトの場合は、それに応じてデータベースの分散の問題を考慮する必要があります。その後、Symfony に付属するデータベース操作レイヤーを放棄し、Symfony はランダムをサポートします。 モデル層を任意に構築します。
【総評】
上記のフレームワークはそれぞれに特徴があり、いずれもオープンソースプロジェクトですが、一般的にはフレームワークの対象となるプロジェクトが異なります。 CodeIngiterは小規模プロジェクトに適しており、CakePHPとZend Frameworkは中規模プロジェクトに適しており、Symfonyはより適していると言われています。 これは、大規模で重量のあるプロジェクトに適しています。プロジェクトを選択するときは、ニーズの変化に応じて変更を加えるかどうかを各プロジェクトで決定できないため、フレームワークのカスタマイズ性と拡張性を十分に考慮する必要があります。
相対的に言えば、Zend Framework と Symfony は変化に対応する能力、特にモデルを自由にカスタマイズする能力に優れています。 レイヤーのクラスは、独自のビジネス クラスやデータ処理クラスを追加するのに非常に便利です。個人的には、このフレームワークを中規模および大規模なプロジェクトで使用することをお勧めします。 CodeIngiter と CakePHP また、中小規模のプロジェクト、迅速な開発、プロトタイプの構築にも重要な役割を果たし、目標が明確でないプロトタイプ プロジェクトの開発に非常に適しています。フレームワークを理解する最良の方法はそれを使用することであり、フレームワークを学ぶ最良の方法は それはビデオを見ていることです。 :-)
善良な人には異なる意見があり、賢明な人には異なる意見がある プロジェクトのフレームワークを選択するときは、プロジェクトのニーズと将来の変化を慎重に検討し、プロジェクトの開発速度と適切なバランスを達成するために適切なフレームワークを選択してください。もちろん、後の保守性を考えると、自分でフレームワークを作成する方が適しているかもしれません。 :-)