PHP 開発で一般的に使用されるフレームワークの紹介:
(ビデオ チュートリアルの推奨: php ビデオ チュートリアル)
1. ThinkPHP
ThinkPHP (FCS) は軽量の中規模のフレームワークで、Java の Struts 構造から移植された中国の PHP 開発フレームワークです。オブジェクト指向開発構造と MVC モードを使用し、Struts タグ ライブラリの実装をシミュレートするため、あらゆる面でより使いやすくなっており、J2EE に慣れている開発者にとっては比較的簡単に始めることができ、J2EE の初心者にも適しています。 PHP フレームワーク。 ThinkPHP の目的は、開発を簡素化し、効率を向上させ、拡張しやすいことです。そのデータベース サポートには、すでに MySQL、MSSQL、Sqlite、PgSQL、Oracle、および PDO のサポートが含まれています。 ThinkPHP には豊富なドキュメントとサンプルがあり、フレームワークは高い互換性を持っていますが、機能が制限されているため、中小規模のプロジェクトの開発に適しています。
利点:
1. 成熟した Java アイデアの助けを借りて
2. 使いやすく、豊富な中国語ドキュメント、学習コストが低く、コミュニティ活動が活発です
3. フレームワークには強い互換性があり、PHP4とPHP5は完全な互換性があり、UTF8なども完全にサポートしています。
4.小規模および中規模のプロジェクトの開発に適しています
5.thinkphp3.2.2のcomposerパッケージ管理ツールの導入
欠点
1 .Ajax サポートがあまり良くない;
2. ディレクトリ構造がわかりにくく、他のフレームワークに比べて少し悪い;
3. 始めやすいが、深く学ぶのは難しい。
2. Yii
Yii は、大規模な Web アプリケーションを開発するための高性能コンポーネントベースの PHP フレームワークです。 Yii は厳密な OOP で書かれており、完全なライブラリ リファレンスと包括的なチュートリアルが含まれています。 MVC、DAO/ActiveRecord、ウィジェット、キャッシュ、階層型 RBAC、Web サービスからテーマ、I18N および L10N まで、Yii は今日の Web 2.0 アプリケーション開発に必要なほぼすべてを提供します。実際、Yii は最も効率的な PHP フレームワークの 1 つです。
#利点1. 純粋なOOP2. 大規模なWebアプリケーションに使用されます3. モデルは使いやすい4. 迅速に開発し、迅速に実行します。優れたパフォーマンスと豊富な機能5. コマンド ライン ツールを使用します。 6. Composer パッケージ管理ツールのサポート欠点:1.モデル層のガイダンスと考慮事項が少ない2.ドキュメントのサンプルが少ない3. 英語が多すぎる4. PHP テクノロジーと OOP プログラミングの熟練度が必要です。 5. ビューは理想的なビューではありません。理想的なビューは単なる HTML コードであり、PHP コードは含まれません。 3. Laravel利点1. Laravelの設計思想は非常に高度で、さまざまな開発モデルTDD、DDD、BDDの適用に非常に適しています2. Composer パッケージ管理ツール
3 をサポート。これには、PHP の比較的新しい機能のほか、さまざまなデザイン パターン、Ioc コンテナ、依存関係注入などが統合されています。
欠点
1. コンポーネントベースのフレームワークに基づいているため、比較的肥大化します
4. CodeIgniter
利点:
1.Code Igniter は「シンプルさは美しい」という原則を提唱しています。派手なデザインパターンや派手なオブジェクト構造はなく、すべてがとてもシンプルです。数行のコードを実行するだけで実行が開始され、さらに数行のコードが出力されます。 「素晴らしいシンプルさ」の典型と言えるでしょう。
2. 構成がシンプルで、すべての設定が PHP スクリプトで構成され、実行効率が高い;
3. 基本的なルーティング機能を備えており、ある程度のルーティングが可能;
4. 予備的なレイアウト機能があり、一定レベルのインターフェイスの外観を作成できます;
5. データベース層は適切にカプセル化されており、基本的な MVC 機能を備えています。高速かつ簡潔で、コードが多くなく、実行パフォーマンスが高く、
##7. フレームワークがシンプルで使いやすく、学習コストが低く、ドキュメントが詳細です; 8. シンプルで使いやすいライブラリが多数付属しており、フレームワークは小規模なアプリケーションに適しています 欠点: 1. 実装自体は理想的ではありません。 2. 内部構造がわかりにくく、シンプルで使いやすいのですが、拡張性がありません。 3. モデル層はデータベース操作として単純に理解してください。4. フレームワークはやや単純で、小規模なアプリケーションのニーズのみを満たすことができますが、アプリケーションのニーズを満たす能力は若干劣ります。 評価: 一般的に、単純で高速なアプリケーションを完成させるために CodeIgniter を使用する価値はありますが、同時に、ある程度のレイアウトを構築して容易にすることができます。テンプレートの再利用 データ操作層は適切にカプセル化されており、CodeIgniter は複雑すぎる設計パターンをあまり使用せず、実行パフォーマンスとコードの可読性の両方が良好です。追加のライブラリに関しても、非常に優れており、シンプルで効率的です。 5. Zend フレームワーク利点: 1. PHP5 の多数の新しいオブジェクト指向機能が適用されます: インターフェイス、例外、抽象クラス、SPL など。 。これらを応用することで、Zend Framework は高度なモジュール化と柔軟性を実現します。2.「インターフェイスのプログラミング」と「単一オブジェクトの責任」の原則に厳密に従います3.公式制作、自主制作多くのライブラリを備えており、フレームワーク自体は多くのデザイン パターンを使用して記述されています。アーキテクチャは非常にエレガントで、実行効率は中程度です。#4. MVC デザイン、比較的シンプル
5. ルーティング機能があり、設定ファイルは比較的強力です (XML と php INI を処理できます)
#6. データベース操作に加えてモデル層を直感的にサポートできます (CodeIgniter や CakePHP より強力です)。新しく追加された Class7.Cache は非常に強力で、フロントエンド キャッシュとバックエンド キャッシュの両方をサポートしています。バックエンド キャッシュは Memcache、APC、SQLite をサポートしています。 、ファイルなど。8. データベース操作機能は非常に強力で、さまざまなドライバー (アダプター) をサポートしています
9. ドキュメントは非常に充実しており、国内コミュニティでは非常に成熟しています
欠点:
1 .MVC 機能は比較的弱く、View 層は単純に (実装されていないのと同じように) 実装されており、フロントエンド ページを強力に制御することはできません。自動化されたスクリプトがない アプリケーションを作成するには、エントリ ファイルを含めてすべてを手動で行う必要がある 構築、エントリのコストが高い
#3. 単純で小規模なプロジェクトの場合は、逆にオブジェクトが大量になるため、フレームワークでは、Zend Framework の目標は、正式に作成されたフレームワークとして、Zend Framework の野心的なものとなります。多くの強力なクラス ライブラリをカプセル化し、ワンストップ ソリューションを提供するフレームワーク サービスを提供しながら、他のフレームワークを排除したいと考えており、その開発チームは非常に強力で、非常に強力な製品を開発する能力を十分に備えているため、基本的には確実です。フレームワークの改善にもっと時間を費やせば、Zend Framework には明るい未来が待っています。同様に、Zend Framework アーキテクチャ自体は比較的洗練されており、これは Zend 公式に多くの専門家がおり、設計コンセプトが比較的進んでいることを示しています。ビュー レイヤー、自動化スクリプトなどの一部の機能は完全には実装されていませんが、これらはすべて依存しています。アップグレード6. CakePHP利点:1. 設計手法やデータベース操作のアクティブ レコード手法など、RoR に最も類似したフレームワーク2. 設計レベルは非常に洗練されており、追加のライブラリはなく、すべての関数は純粋なフレームワークであり、実行効率も悪くありません3. データベース層の hasOne 関数と hasMany 関数は非常に優れています強力で複雑な業務処理に比較的適している 適している 4. ルーティング機能、設定難易度は中程度 5. 自動構築スキャフォールド (scaffold) が非常に強力で中規模アプリケーションに適している6. 基本的にすべての MVC First level に実装されています7. コマンドライン スクリプトを自動操作する機能があります8. ドキュメントは比較的充実しており、学習コストは中程度の欠点:1.CakePHPは非常に複雑です。深刻な問題は、モデルがデータベース層の操作として理解されることです。これは、データベース以外の操作能力に重大な影響を及ぼします2. キャッシュ機能がやや弱い
##3. コンフィグレーション機能がやや弱い
4. 大規模アプリケーションには適さず、中規模アプリケーションのみに適しています。
#評価:一般に、CakePHP フレームワークは PHP を代表する非常に重要な時代であり代表的なフレームワークであり、現在非常に重要な役割を果たしています。自作のフレームワークは画期的な製品である CakePHP メソッドを模倣しています; CakePHP は RoR のアジャイル開発メソッドを明らかにし、データベース操作を唯一のモデルの設計思想と見なしており、迅速なアプリケーションとプロトタイプを開発するための優れたツールです; 同様に、Web2.0 Web サイトの開発フレームワークとしても選択する価値があります# 7. Symfony
利点:
1. MVC# の 3 つの層を完全に実装します。
##2. $POST、$GET データ、例外処理、デバッグ関数、データ検出を含むすべてをカプセル化します3. 強力なキャッシュ関数が含まれています#4. クラスを自動的にロードします独自のさまざまなクラスを自由に定義できます
5. 強力な言語サポート
6 非常に強力なビュー レイヤー操作があり、複数のファイルを部分的に含めることができます
7. XML 構成を使用してすべてのフレームワークとプログラムの実行動作を制御する非常に強力な構成機能
8. 強力なマルチレベルのプロジェクトおよびアプリケーション管理が含まれています: プロジェクト --> アプリケーション --> モジュール --> ; アクション、1 つのプロジェクトの下で複数のアプリケーションのニーズを満たすことができ、各レイヤーは独自のクラス ライブラリと構成ファイル、layout
9 を定義できます。プロジェクトの作成、アプリケーションの作成を含む、非常に強力なコマンド ライン操作機能
10.大規模で複雑なプロジェクトを開発するには、Symfony が間違いなく最初の選択肢です。Symfony を使用するため、開発コストが大幅に節約され、問題は発生しません。複数の人が共同作業する場合、プロジェクト レベルで基本クラスを定義した後は、任意のモジュールを再利用でき、コードを大幅に再利用できます。
欠点 :
1. 最大の問題は、オープンソースが多すぎることです。異なるスタイルのプロジェクトは、フレームワークに結合するために使用されます
2. Mojavi と Propel 自体が非常に複雑であるため、Symfony の構造は非常に複雑で、理解して学習するのが困難です
3.キャッシュ機能を制御できません。開発とデバッグが常にキャッシュされるたびに、symfony cc、symfony rc を実行してキャッシュをクリアし、再構築する必要があります。
4. 効率はあまり高くありません (特に解析のプロセス)テンプレートと設定ファイルの読み取りには時間がかかります
5。学習コストが非常に高く、中国には成熟したコミュニティや中国語のドキュメントがありません
評価:
Symfony は間違いなくエンタープライズ レベルのフレームワークであり、Java 分野の強力なフレームワークと一見競合できる唯一のものです。強力なものは当然ながら習得が複雑ですが、プロジェクト開発にも役立つため、当然のことながら次のような場合に推奨されます。複雑なプロジェクトを処理するには Symfony を使用する価値があり、後の段階でのメンテナンスコストが比較的低く、再利用性が非常に高いです。同様に、Symfony をより複雑なインターネット プロジェクトに使用する場合は、データベースの配布の問題を考慮する必要があります。その後、Symfony に付属するデータベース操作層を放棄して、自分で定義する必要があります。もちろん、Symfony は任意のモデル層の構築をサポートしています
総論:
##上記のフレームワークはそれぞれに特徴があり、いずれもオープンソースプロジェクトですが、フレームワークの対象となるプロジェクトは異なります。 # 1. 小さなプロジェクト: CodeIngiter2. 中規模プロジェクト: CakePHP、Zend Framework、Laravel、Thinkphp
3. 大規模重量プロジェクト: Yii、Symfony、Laravel
上記の分類は絶対的なものではありません。各プロジェクトでは、ニーズの変化に応じて変更を加えるかどうかを決定できないため、設計する際には、フレームワークのカスタマイズ性と拡張性を十分に考慮する必要があります。
関連する推奨事項: php トレーニング
以上がPHP 開発の一般的なフレームワークは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。