最近、中国で使用されているいくつかの主流の海外 PHP フレームワーク (国内フレームワークを除く) について直感的に感じたことを簡単に共有したいと思います。参考として使用する必要があります。
主な参照フレームワークには、CodeIgniter、CakePHP、ZendFramework、Symfony が含まれます。
注: 私は多くのフレームワークを真剣に使用したことはありません。私の意見の多くは未熟であったり、間違っていたりする可能性があります。修正して、一緒に成長していきましょう。
【CodeIgniter】
公式ウェブサイト: http://codeigniter.com
中国語ウェブサイト: http://codeigniter.org.cn
中国語マニュアル: http://codeigniter.org.cn/user_guide
ビデオチュートリアル: http:/ /codeigniter.org.cn/tutorials
テストバージョン: CodeIgniter_1.6.1
利点:
1. シンプルな構成、すべての構成は PHP スクリプトを使用して構成され、基本的なルーティング機能があり、特定のルーティングを実行できます。エクステント; 予備的なレイアウト機能があり、一定レベルのインターフェイスの外観を生成できます。データベース層は適切にカプセル化されており、基本的な MVC 機能を備えています。2. コードが少なく、実行パフォーマンスが高く、シンプルなフレームワークです。学習コストが低く、詳細なドキュメントが用意されている。フレームワークは小規模なアプリケーションに適している。
1. モデル層は単にデータベース操作として理解される。ややシンプルで小規模なアプリケーションのニーズのみを満たすことができますが、中規模のアプリケーションには少し適していません。
評価:
一般に、シンプルで高速なアプリケーションを完成させるために 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は、データベース操作の設計方法とアクティブレコード方法を含め、非常に洗練されたフレームワークです。独自の冗長ライブラリを持たず、すべての関数が純粋なフレームワークであり、実行効率が非常に優れています。データベース層の hasOne 関数と hasMany 関数は非常に強力で、複雑なビジネス処理に適しています。ルーティング関数と構成関数も悪くありません。 ; 自動スキャフォールディング (scaffold) は非常に強力で、基本的に MVC の各層に実装されており、ドキュメントは比較的完成しています。中国では、ほとんどの人が CakePHP を知っており、学習コストは中程度です。
欠点:
1. CakePHP の非常に深刻な問題は、モデルをデータベース層の操作として理解していることです。これは、データベース以外の操作能力に重大な影響を与えます。
2. CakePHP のキャッシュ機能とその設定機能は少し弱い; CakePHP は大規模なアプリケーションには適していないが、小規模なアプリケーションでは学習コストがわずかに高い
評価:
一般的に。 、CakePHP フレームワークは、PHP フレームワークの非常に重要な時代を代表しており、現在非常に重要な役割を果たしています。このフレームワークは CakePHP メソッドを模倣しており、RoR のアジャイル開発メソッドを明らかにする画期的な製品です。データベース操作を唯一のモデルとして考慮するという設計思想は、迅速なアプリケーションやプロトタイプの開発に優れたツールであり、Web 2.0 Web サイトの開発フレームワークとしても選択する価値があります。
【Zend Framework】
公式ウェブサイト: 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 よりも強力です)、ロードするために Loader 関数を簡単に使用できます。その他の新しく追加されたクラス; キャッシュ機能は非常に強力で、フロントエンド キャッシュからバックエンド キャッシュまでをサポートし、データベース操作機能も非常に強力です。さまざまなドライバー (アダプター) をサポートしています
2. ドキュメントが非常に充実しており、国内コミュニティで人気があります。 非常に成熟しており、現在多くの Web 2.0 Web サイトで使用されています。 欠点: MVC 機能。は比較的弱く、ビュー層は単に実装されているだけであり (実装されていないのと同じ)、フロントエンド ページを強力に制御することはできません
2. アプリケーションを作成するための自動化スクリプト (エントリ ファイルを含む) は手動で構築する必要があります。エントリーコストが高い
3. Zend Framework は中規模のアプリケーション フレームワークとしては大きな問題はなく、大規模アプリケーションのフレームワークとしてはほとんど使用できませんが、非常に成熟した大規模な For PHP フレームワークとしては問題ありません。 、まだ努力が必要です
評価
公式に作成されたフレームワークとして、Zend Framework の野心は、他のフレームワークを排除すると同時に、多くの強力なクラス ライブラリをカプセル化し、ワンストップのフレームワーク サービスを提供したいと考えています。非常に強力な製品を開発する能力があるため、フレームワークの改善にさらに時間を費やすことができれば、Zend Framework には明るい未来があることは基本的に確実です。同様に、Zend Framework アーキテクチャ自体は比較的洗練されており、これは Zend が公式に多くの専門家を擁し、設計コンセプトが比較的進んでいることを示しています。ただし、ビュー レイヤー、自動化スクリプトなどの一部の機能は完全には実装されていませんが、これらはすべて依存しています。今後のアップグレードについて。一般的に、Zend Framework は最も期待されているフレームワークです。もちろん、今プロジェクトで使用することに問題はありません。
【Symfony】
公式ウェブサイト: http://www.symfony-project.org
中国語ウェブサイト: http://symfony-project.cn
正規ガイド: http://www.symfony-project.org/book
学習リファレンス: http://sf.thecodecentral.com
テスト バージョン: symfony-1.0.13
利点:
1. Symfony は私が知っている中で最も強力な PHP フレームワークであり、私は長い間使用してきましたが、この関数はまだ発見されていません。この関数は、MVC の 3 つの層を完全に実装し、$_POST、$_GET データ、例外処理、デバッグ関数、データ検出を含むすべてをカプセル化します。これには、強力なキャッシュ関数とクラスの自動ロードが含まれます。この機能は非常に優れています)、強力な i18n 国別化サポート、非常に強力なビュー レイヤー操作があり、複数のファイルを部分的に含めることができ、yml 構成を使用してすべてのフレームワークとプログラムの実行動作を制御します。人々は言葉を失います。独自のさまざまなクラスを自由に定義でき、symfony はこれらのクラスをプログラム内で自由に呼び出すことができます。これには、強力なマルチレベルのプロジェクトとアプリケーションの管理が含まれます。 --> モジュール --> アクションは、1 つのプロジェクトで複数のアプリケーションのニーズを満たすことができ、各レイヤーは、プロジェクト、アプリケーション、およびレイアウトの作成を含む、独自のクラス ライブラリ、構成ファイル、およびレイアウトを定義できます。モジュール、キャッシュの更新など;
2. Symfony を使用すると開発コストが大幅に節約され、基本的なクラスを定義した後に問題が発生しないため、間違いなく Symfony が第一の選択肢となります。プロジェクト レベルでは、コードを大幅に再利用して、任意のモジュールを再利用できます。
短所:
1. データベース操作モデルは強力な prop と creole を使用しますが、私がテストしたバージョンでは、それらはアドオンに移動されており、使用できるかどうかは関係ありません。
2. キャッシュ機能は制御できません。開発中やデバッグ中は常に symfony cc や symfony rc を実行する必要があります。特にプロセスの効率は高くありません。 ;
4. 学習コストが非常に高く、中国には成熟したコミュニティやドキュメントが存在しないため、多くの時間がかかります。すべての機能をマスターする時間です
評価:
Symfony は間違いなくエンタープライズレベルのフレームワークであり、Java 分野のいくつかの強力なフレームワークと競合できるように見えるものは、当然ながら学習が複雑ですが、次のような場合にも役立ちます。当然のことながら、複雑なプロジェクトを処理するには Symfony を使用することをお勧めします。コストが比較的低く、再利用性が高いため、価値があると思います。同様に、より複雑なインターネット プロジェクトに Symfony を使用する場合は、データベースの分散の問題を考慮する必要があります。その後、Symfony に付属するデータベース操作レイヤーを放棄し、それを自分で定義する必要があります。もちろん、Symfony は任意のモデル レイヤーの構築をサポートします。
【総評】
上記のフレームワークはそれぞれに特徴があり、いずれもオープンソースプロジェクトですが、一般的に小規模プロジェクトにはCodeIngiterが適しており、CakePHPとZend Frameworkは対象となるプロジェクトが異なります。 Symfony は中規模のプロジェクトに適しており、Symfony は大規模なプロジェクトに適しています。プロジェクトを選択するときは、フレームワークのカスタマイズ性とスケーラビリティを十分に考慮する必要があります。これは、各プロジェクトが変更を加えるかどうかがわからないためです。ニーズの変化に合わせて。
相対的に言えば、Zend Framework と Symfony は変更への対応力が高く、特にモデル層のクラスが自由にカスタマイズできるため、独自のビジネスクラスやデータ処理クラスを追加するのに非常に便利です。個人的にはこれらのフレームワークをお勧めします。中規模および大規模なプロジェクトで使用します。 CodeIngiter と CakePHP は、中小規模のプロジェクト、迅速な開発、プロトタイプの構築にも重要な役割を果たし、目標が明確でないプロトタイプ プロジェクトの開発に非常に適しています。フレームワークを理解する最良の方法はそれを使用することであり、フレームワークを学ぶ最良の方法はビデオを見ることです。 :-)
慈悲深い人にはさまざまな意見があり、賢明な人にはさまざまな意見があります。プロジェクトのフレームワークを選択するときは、プロジェクトのニーズと将来の変化を慎重に検討し、プロジェクトの開発速度の適切なバランスを達成するために適切なフレームワークを選択してください。もちろん、その後の保守性も考慮して、フレームワークを自分で作成する方が適切かもしれません。 :-)
いくつかのフレームワークの一般的な評価を行いましたが、多くの点が的外れであると思いますので、コメントや修正も歓迎します。