ホームページ バックエンド開発 PHPチュートリアル 海外の主流PHPフレームワークの比較

海外の主流PHPフレームワークの比較

Jun 13, 2016 pm 01:09 PM
cakephp codeigniter framework http symfony

海外の主流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 また、中小規模のプロジェクト、迅速な開発、プロトタイプの構築にも重要な役割を果たし、目標が明確でないプロトタイプ プロジェクトの開発に非常に適しています。フレームワークを理解する最良の方法はそれを使用することであり、フレームワークを学ぶ最良の方法は それはビデオを見ていることです。 :-)

善良な人には異なる意見があり、賢明な人には異なる意見がある プロジェクトのフレームワークを選択するときは、プロジェクトのニーズと将来の変化を慎重に検討し、プロジェクトの開発速度と適切なバランスを達成するために適切なフレームワークを選択してください。もちろん、後の保守性を考えると、自分でフレームワークを作成する方が適しているかもしれません。 :-)

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

この章では、CakePHP の環境変数、一般設定、データベース設定、電子メール設定について理解します。

CakePHP データベースの操作 CakePHP データベースの操作 Sep 10, 2024 pm 05:25 PM

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

この章では、ルーティングに関連する次のトピックを学習します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

Web ページのリダイレクトの一般的なアプリケーション シナリオを理解し、HTTP 301 ステータス コードを理解する Web ページのリダイレクトの一般的なアプリケーション シナリオを理解し、HTTP 301 ステータス コードを理解する Feb 18, 2024 pm 08:41 PM

HTTP 301 ステータス コードの意味を理解する: Web ページ リダイレクトの一般的なアプリケーション シナリオ インターネットの急速な発展に伴い、Web ページの操作に対する人々の要求はますます高くなっています。 Web デザインの分野では、Web ページのリダイレクトは一般的かつ重要なテクノロジであり、HTTP 301 ステータス コードによって実装されます。この記事では、HTTP 301 ステータス コードの意味と、Web ページ リダイレクトにおける一般的なアプリケーション シナリオについて説明します。 HTTP301 ステータス コードは、永続的なリダイレクト (PermanentRedirect) を指します。サーバーがクライアントのメッセージを受信すると、

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

See all articles