ホームページ >バックエンド開発 >PHPチュートリアル >いくつかの PHP フレームワーク
PHP は世界で最も人気のあるプログラミング言語の 1 つであり、主要なプロジェクトで広く使用されています。たとえば、Facebook は内部システムの作成と保守に PHP を使用しており、WordPress は内部的に PHP に基づいており、その代わりに Web サイトの 26% 以上に技術サポートを提供しています。そして現在、PHP は 82% 以上の Web サイト (Web Technology Surveys サイトで追跡されているサーバー側プログラミング言語) のサポートを提供しています。
この記事は、最も人気のある 3 つの PHP フレームワーク (Symfony、Laravel、Yii) を比較することで、最適な PHP フレームワークを見つけるのに役立ちます。
なぜ PHP フレームワークを選ぶのですか?
PHP フレームワークを使用して開発する利点の一部を以下に示します:
PHP フレームワークにより開発が高速化されます。たとえば、データベースからデータを取得するために複雑なクエリ操作を記述する必要はありません。PHP には、追加 (作成)、読み取り (取得) (データの取得)、更新 (更新)、および削除 (削除) の操作が用意されています。
このフレームワークにより、開発者はシステムを簡単に拡張できます。
コードのメンテナンスは通常の PHP アプリケーションよりも簡単です。アプリケーションコードがよりクリーンになります。
MVC モデルにより、迅速な開発が保証されます。
フレームワークは、一般的なセキュリティ脅威から Web アプリケーションをより適切に保護します。
DRY (同じことを繰り返さない) 原則により、最小限のコードで最大の役割を果たすことができます。
上記のメリットは非常に重要です。どのアプリケーションもネイティブ PHP を使用して作成できますが、今日の開発では、市場の需要を満たすためにより多くのツールと時間管理スキルが必要です。
適切な PHP フレームワークを選択するにはどうすればよいですか?
適切なフレームワークをより適切に選択できるように、次の質問に答えてください:
このフレームワークの特徴と機能は何ですか? (必要なものは提供されていますか?)
このフレームワークの学習曲線はどれくらいですか?
このフレームワークはどの程度拡張性がありますか?
このフレームワークはコーディングチームの開発と保守に良い影響を与えていますか?
このフレームワークは長期サポートバージョン (LTS サポート) を提供しますか?
このフレームワークには強力なコミュニティのサポートがありますか?
Symfony、Laravel、Yiiの概要
技術的な詳細に入る前に、3つの概要を説明しましょう:
Symfony
Symfonyは、開発者がスケーラブルなビルドを可能にする再利用可能なPHPコンポーネントです。高性能アプリケーション。 30 個のコンポーネントから選択でき、開発者は RAD 環境で自由に実験したり作業したりできます。
Drupal や phpBB などの有名なプロジェクトの一部は、Symfony フレームワークを使用しています。実際、別の人気のある PHP フレームワークである Laravel も Symfony 上に構築されています。
Laravel
「Web 職人のための PHP フレームワーク」 - Laravel は最も人気のある PHP フレームワークとして、開発者に優れたコミュニティ コミュニケーション プラットフォームを提供します (Laravel の創設者の 1 人は Livecoding.tv の Sfiskell です)。
2015年5月にLaravelがリリースしたバージョン5.1では長期サポート版(2年間)が提供されます。バージョン 5.2 も 2015 年 12 月に市場に登場しました。 Laravel サポートや Laravel アプリケーション ホスティング ソリューションを提供するホスティング会社は数多くあります。
Yii
2008 年に中国人の Xue Qiang によって作成された Yii は、安全、高速、高性能のアプリケーション/Web 開発フレームワークです。 Yii は、PHP の Composer 依存関係マネージャーを利用して、さまざまな依存関係とインストールを処理します (これについては以下で説明します)。遅延読み込み技術により、Yii は最速の PHP フレームワークになります。
Yii のもう 1 つの優れた機能は、フロントエンド開発者がスキャフォールディングを使用してコードを生成するのを迅速化できる jQuery の統合です。 Yii は、Symfony と同様に、コンポーネントを使用してアプリケーション開発を高速化します。
Symfony、Laravel、Yii の比較
これら 3 つのフレームワークはすべて Web 2.0 アプリケーションを開発するように設計されていますが、焦点は異なります。それぞれの機能とインストールを見てみましょう:
テンプレート エンジン
テンプレート エンジンは、開発者の負担を軽減し、フロントエンド コードを作成する際に優れた機能を提供します。テンプレート エンジンは、自動 HTML エスケープやフィルタリングなどの機能を提供し、ネイティブ PHP によって残されたギャップを埋めます。
Symfony Twig テンプレート システム
Twig は、柔軟で高速かつ安全な PHP テンプレート言語です。 Symfony の利点は、Twig を使用して開発者がクリーンで整然としたコードを記述できることと、ネイティブ PHP を使用してより多くの機能を実装できることです。たとえば、次の長いコードはエスケープを実装しています:
<?php echo $var ?> <?php echo htmlspecialchars($var, ENT_QUOTES, 'UTF-8') ?>
Twig 同じ機能は次のコードでも実現できます:
{{ var }} {{ var|escape }} {{ var|e }} {# shortcut to escape a variable #}
你可以进入 Twig 主页来查看更多的功能。
Laravel Blade 模板系统
跟其他的模板系统不同,Blade 允许你在视图中使用 PHP 代码。而且,由于blade 视图文件存储在 .blade.php extension里面,所以 Blade 对你的应用性能损耗为 0。所有在视图文件里面的代码可以在处理过程中就转换成原生 PHP。
Yii 默认的模板系统
Yii 默认不使用任何第三方的模板系统,但这并不意味着它缺少模板系统的支持,模板系统的选择取决于开发团队,推荐 Twig 和 Smarty。Symfony 使用的是 Twig,所以如果你之前使用过 Symfony,你可能会想选择 Twig 作为你下一个 Yii 项目的选择。
很难定义那款才是最好的。这三个框架都利用了模板系统来更好地编写和维护前端。 Yii 的一个小优势是它没有一个预定义的模板系统。
框架的差异
每个框架的构建都是不同的。Symfony 致力于可重用组件,并提供最好的模块化。另外 Symfony 利用模块和控制器来开发 Web 应用,这可能会让一些刚入门的开发者望而却步。此外,Symfony 还是一个很好的模块化结构的例子,你可以以模块化的方式在你的项目里使用 symfony 提供的 30 个组件。
Yii采用 MVC 框架。(symfony 也支持 MVC 架构,更详细的讨论请看 blog.sznapka.pl 网站的 Is Symfony2 a MVC framework )
Symfony 可以用于快速开发复杂的项目。如果说哪个框架最适合复杂的项目的话,symfony 相比于其他框架具有十分优秀的复杂处理的能力 。Yii 也利用了组件,但和 symfony 的模块不一样。Laravel 虽然没有提供一个模块化的方法,但和其他两个框架一样好用。
如果你正在寻找一个模块化的框架的话就选择 symfony。否则,Laravel 和 Yii 都是不错的选择。
安装
这三个框架都提供了多个安装过程,如果您使用 Composer 来处理包,就发现其实所有框架都可以通过Composer 安装。
而对于 Symfony 来说,Composer 的作用尤为重要。因为使用 PHP 的 Composer 依赖项管理器是处理组件的好帮手。
当然也有其他的安装框架的方式,例如使用简单的归档方法来安装。
安装后,Yii 将提供一个 Web 应用程序和一个基本的模板帮助你的开发;Symfony 2 提供了一个开始演示应用程序;通过 Laravel 安装程序来安装和使用 Composer 来创建项目,使得 Laravel 也能够很容易安装使用。详细信息请查看 Laravel 安装指南。
发展
从公司或客户的角度来看,迅速将应用程序推向市场以满足消费者的需求并击败竞争对手是很重要的。 Symfony 由于其背后有强大的社区支撑而站稳脚跟; Laravel 正在快速成长,要被开发者完全认可仍有很长的路要走。另外,如果你还不知道任何 PHP 框架,希望尽快选择一款适合你的,Laravel 是个不错的选择,它有一个简单的学习曲线,并且有很多在线教程帮助你开始使用。Yii 将性能提升到一个新的水平,并提供代码基架,以便更快地生成和开发代码。
性能
任何应用程序的性能只有当它使用关键数据的实时应用程序时才有意义。有多少基于 Web 的应用程序依赖于高性能呢? 并不多,但是框架的性能在许多项目中可以发挥关键性的作用。
社交网络是实时事件的主要例子,我们的明星流媒体之一——jadson 就使用了 Yii2 建立移动社交网络。最快的 PHP 框架 Yii 毫无疑问是高性能应用程序编码框架的最佳选择。
Laravel 的性能是非常有争议的。它是最慢的,但这重要吗? 您可以找到很多用于加快性能的在线资源,包括使 Laravel 应用程序更快的 GitHub 指南。
数据库支持
Symfony 2 提供更好的数据库支持。您可以使用数据库数组,包括 NoSQL 和 DynamoDB。Yii 和 Laravel 也支持数据库,但是所支持的数据库比 Symfony 少。每个框架支持的数据库如表1所示。
表1
社区和资源
コミュニティの強さは、オープンソース フレームワークの寿命を予測する重要な要素です。これら 3 つのフレームワークには独自の固定コミュニティがあり、Symfony は比較的成熟しています。コミュニティはまだ進化しているため、将来どのように発展するかを予測するのは困難です。
Laravel は学習教材とドキュメントの点で最高であり、Symfony と Yii も悪くありません:
Laravel ドキュメント
Symfony ドキュメント (3.0)
Yii ドキュメント
利用可能なスケーラビリティ
フレームワークは、拡張またはパッケージ化して、その機能と範囲を向上させることができる構造です。この点では、Laravel が明らかに勝者です。 Packalyst は Laravel パッケージのディレクトリであり、9000 以上のパッケージを提供しています。 Yii と Symfony は、それぞれ約 2800 の拡張機能と 2830 のバンドルを提供します。 Laravel は、他の 2 つのフレームワークの 3 倍のスケーラビリティを備えた、この点で最高のフレームワークです。
Symfony、Laravel、Yii の類似点
フレームワーク間の違いを調べました。 次に、それらの類似点を見てみましょう:
1. 3 つのフレームワークはすべてフルスタックの PHP フレームワークであり、フロントエンドのコード作成からバックエンドのデータ取得まで、Web アプリケーションの作成に関わる機能を提供します。
2. これらのプロジェクトはすべてオープンソースであり、ソースコードは GitHub で見つけることができ、誰でも簡単に独自のコードを投稿できます:
3.フレームワークは十分に文書化されており、大規模なコミュニティによってサポートされています。
5. これらを使用して Web 2.0 アプリケーションを作成するのは安全で信頼性があります。
まだ選べない? おそらくこれらのリストは選択肢を絞り込むのに役立ちます:
Symfony:
はLTSバージョンを提供し、
にはロード機能があり、
は現在最も安定したフレームワークです、
は広範なモジュール性を提供するコンポーネントベースのフレームワークです。
強力なコミュニティと多くの学習リソースがあります
Ajaxサポートが付属しています
リアルな開発に非常に適しています-time アプリケーション
拡張性が高い
正確なエラー処理
Restful Web サービスの作成に特化
強力なコミュニティと大量の学習リソースがある
2015-2016年に最も人気のあるフレームワーク
パッケージ管理のためにComposerをサポート
単体テストが得意
フレームワークの機能を拡張するためのソフトウェアパッケージを多数提供しています
強力な機能を持っていますコミュニティと多数の学習リソース
Symfony、Laravel、Yii の 3 つの PHP フレームワークはすべて、開発者にフルスタック開発環境を提供する優れたオプションです。 Laravel が最大の勝者であり、今も勢いを保っていると思います。
しかし、Symfony と Yii はどちらも優れたフレームワークです。 symfony はより成熟しており、より大規模で成熟したコミュニティがあります。 Yii は、ジョブを堅牢かつ安全に実行する独自のフレームワークです。
Symfony2 vs Yii2: どの開発フレームワークを選ぶべきですか?
開発者向けの10のPHPフレームワーク
エンタープライズ開発にはLaravel 5.1です
以上がいくつかの PHP フレームワークの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。