PHP フレームワークとは何ですか? PHP フレームワークを使用する理由この記事では、PHP フレームワークの利点について説明し、2023 年に最も人気のある PHP フレームワーク 11 個を要約して共有します。皆さんのお役に立てれば幸いです。
1: PHP フレームワークとは何ですか?
PHP フレームワークは、単純に PHP 言語で記述されているため、開発効率が向上し、より安定したプログラムを作成でき、プロジェクト開発プロセス中に開発者が繰り返し記述する作業を減らすことができます。中国で最も人気のあるインフラストラクチャは、ThinkPHP と Laravel フレームワークです。
PHP中文网「第 23 回 PHP 初心者向けダニエルズ向け 3 か月ライブクラス」中国で最も一般的に使用されており、入門に最適な ThinkPHP6 フレームワークを選択しました-レベルの指導。 (注: 23 は 2023 年 3 月 9 日に開始されます)
登録に関する相談↓↓↓
QQ/WeChat: 27220243 (Zhong 先生) , WeChat: phpcn01 (Yueyue 先生)
(長押しして WeChat を特定して追加します)
2: PHP フレームワークを使用する理由は何ですか?
PHP フレームワークを使用することには、ネイティブ PHP 言語を使用して最初からコーディングする場合と比較して、多くの利点があります。
1. 開発進捗のスピードアップ
PHP フレームワークにはライブラリとツールが組み込まれているため、プロジェクトの開発に必要な時間が大幅に短縮されます。
たとえば、CakePHP フレームワークには Bake コマンド ライン ツールがあり、アプリケーションで必要なフレームワーク コードをすばやく作成できます。いくつかの人気のある PHP フレームワークには、テストを容易にするために PHPUnit ライブラリが統合されています。
2. 記述するコードが少なくなります
フレームワークに組み込まれている関数を使用するため、独自のコードをあまり記述する必要がありません。
3. 関数リソース ライブラリが多数あります
開発者が Web アプリケーションで実行する必要がある一般的なタスク (フォーム検証、データ クリーニング、CRUD 操作など) が多数あります。 (作成、読み取り、更新、削除)。
フレームワークを使用すると、これらのタスク用に独自の関数を記述する必要はなく、フレームワークによってカプセル化された関数を使用するだけです。
4. 適切なコーディング プラクティスに従う
PHP フレームワークは通常、コーディングのベスト プラクティスに従い、たとえば、機能に基づいてコードを複数のディレクトリにきちんと分割します。
#これらのディレクトリを使用すると、コードをよりクリーンで、より保守しやすい方法で編成することができます。
フレームワークには、変数、ディレクトリ、スペースなどに対する独自の命名規則もあります。これらの規則に従う必要があります。
5. 自分で作成したアプリケーションよりも安全です
プロジェクトがオンラインになった後は、クロスサイト スクリプティング、SQL インジェクション攻撃、クロスサイトリクエストの偽造。プログラムを保護するために適切な対策を講じない限り、PHP Web アプリケーションは攻撃に対して脆弱になります。
PHP フレームワークの使用は、安全なコードの作成に代わるものではありませんが、ハッカーが脆弱性を悪用する機会を最小限に抑えることができます。優れたフレームワークには、上記の一般的な脅威から保護するデータ クリーニング機能が組み込まれています。
6. チームワークの向上
次の点が明確でない場合、チームによって開発されたプロジェクトがうまくいかない可能性があります:
7. 保守が簡単
PHP フレームワークはコードのリファクタリングを奨励し、DRY 開発 (DRY-Don'trepeat Yourself) を促進することで、コードがより合理化されます。ベースはメンテナンスの必要性が少なくなります。 また、フレームワークのコアの保守については、フレームワーク開発者が行うため、心配する必要はありません。3: PHP フレームワークを使用する前に知っておくべきこと
1. PHP ネイティブの基本
PHP フレームワークを使用する前に、まず PHP のネイティブの基本をマスターする必要があります。 言語を十分に理解していないと、PHP のカプセル化されたフレームワークを習得するのは困難です。推奨チュートリアル:
無料の公共福祉コース:
https://www.php.cn/course/1147.html
https://www.php.cn/course/1188.html
有料コース:
01.VIP会员专属课:前端+后端PHP+实战(录制课)
https://www.php.cn/vip.html
02.线上直播班:前端+后端PHP+综合实战(含辅导解答、作业批改)
https://www.php.cn/k.html
2. 面向对象
了解PHP面向对象编程也是必不可少的一步,因为大多数现代PHP框架都是面向对象的,确保理解类、对象、继承、方法、 traits和访问修饰符等概念。
3. 数据库
由于许多web应用程序的数据获取都需要连接数据库,因此您应该了解数据库和SQL语法,每个PHP框架都有自己受支持的数据库列表。
4. 对象关系映射(ORM)模型
ORM是一种使用面向对象语法而不是SQL语法访问数据库数据的方法,使用ORM,您可以用熟悉的PHP编写数据库查询,但有时也可能需要使用SQL语句。
许多PHP框架都内置了自己的ORM,例如,Laravel使用了Eloquent ORM。其他框架则使用一种类似于ORM的开源原则。
5. WEB服务器环境
了解Apache和Nginx等web服务器的工作原理对于框架的使用也是很有帮助的,因为您可能需要在服务器上配置文件,以使应用程序以最佳方式运行。
您可能会在本地进行大部分开发,因此您也需要了解localhost。另一种选择是使用Vagrant和VirtualBox在虚拟环境中创建和测试应用程序。
6. 模型-视图-控制器架构模式
PHP框架通常遵循模型-视图-控制器(MVC)设计模式。这个概念将数据的操作与数据的渲染分离开来。
Model模型存储业务逻辑和应用程序数据,它将数据传递给视图层。用户与视图交互,然后交由控制器处理这些交互指令,接着控制器向模型发出这些指令,循环继续。
简而言之:
模型是关于数据的,
视图是关于页面渲染的,
控制器是关于行为的。
关于MVC模式的工作原理,我们可以类比在酒吧点鸡尾酒。
用户就好比到达酒吧(视图
)需要酒水的顾客,用户将他们的酒水订单交给酒保(控制器
)。
控制器根据模型——配方、配料和设备完成订单。根据鸡尾酒的不同,他们可能会使用以下任何一种或其他物品:
·含酒精饮料 ·果汁 ·冰 ·柠檬 ·玻璃 ·鸡尾酒摇壶 ·油橄榄 ·搅拌器
成品鸡尾酒放在吧台上供用户享用。如果用户想再喝一杯,他们必须先与控制器通话。他们不允许进入模型并调制自己的饮料。
在PHP应用程序术语中,MVC可以对应以下内容:
模型:数据库
视图:一个或多个HTML页面
控制器:访问和更新数据库的功能
7. 命令行界面(CLI)
Laravel有自己的CLI Artisan控制台。使用Artisan中的“生成”命令,可以快速构建项目的模型、控制器和其他组件。
熟悉命令行也是使用Composer PHP包管理器的关键。Yii框架是使用Composer来安装和管理项目依赖 (应用程序运行所需的包)的几种框架之一。
Packagist是可以使用Composer安装的软件包的主要存储库。一些最流行的Composer软件包使用Symfony框架运行。
五:您应该如何考量一款PHP框架好不好?
以下是小编为您总结的为项目选择最佳PHP框架时需要考虑的一些因素:
首先,如果您刚接触PHP框架,学习路线不应该太曲折。
如果框架太难掌握,你就不想花宝贵的时间学习它。幸运的是,PHP是最容易学习的编程语言之一。
接下来,您需要一个易于使用并节省时间的框架。
PHP フレームワークは、プロジェクトの技術要件を満たす必要があります。ほとんどのフレームワークには、最小 PHP バージョンと、使用する特定の PHP 拡張機能があります。
さらに、選択したフレームワークが選択したデータベースをサポートしていること、およびデプロイ先の Web サーバーでそのフレームワークを使用できることを確認する必要があります。
バランスの取れた機能を備えたフレームワークを選択してください。プロジェクトによっては、機能が豊富なフレームワークが役立つ場合があります。多くの機能が必要ない場合は、必要最低限のフレームワークを選択してください。
いくつかの重要な機能は次のとおりです:
テスト
最後に、PHP フレームワークを柔軟に使用したい場合は、適切なドキュメントと環境サポートがなければできません。
大規模で活気のあるコミュニティを持つフレームワークは、時の試練に耐え、行き詰まったときに助けてくれる可能性が高くなります。6: 2022 年に最高の PHP フレームワークは何ですか?
現在使用されている最高の PHP フレームワークの一部を以下に示します:1.ThinkPHP (中国で最も使用されており、簡単に始めることができます) 、初心者に適しています)
2. Laravel (世界で最も使用されており、最もエレガントなフレームワークとして知られていますが、始めるのは難しい)
#3 . Symfony
4. CodeIgniter (CI と呼ばれ、非常に軽量)
5. Zend Framework / Laminas プロジェクト
6. Yii (フレームワーク) (主に国内および海外の貿易業界で使用されます)
7. CakePHP
8. Slim
9. Phalcon
##10. FuelPHP##11. Fat-Free フレームワーク
ThinkPHP
ThinkPHP は中国人によって開発され、無料のオープンソースです、オブジェクト指向の軽量 PHP 開発フレームワーク。 2006 年初めに誕生し、中国で最も使用されている php 中国語 Web サイト
の第 23 回 PHP ライブ授業プロジェクトでは、初心者に非常に適した ThinkPHP6 を使用しています。 ThinkPHP5.x: 2015 年にリリースされ、MVC モードで PHP>=5.6「Web 職人のための PHP フレームワーク」と宣伝されている Laravel は、ユーザー認証など、CodeIgniter にはない機能を備えたフレームワークを望んでいた Taylor Otwell によって開発されました。 Laravel の簡単な紹介
リリース日: 2011 年 6 月 現在のバージョン: Laravel8 - 2020 年 9 月 8 日にリリースされました。
技術要件:
##PHP>=7.2.5 (または Laravel Homestead を使用)
Laravel の利点
Mac ユーザーの場合は、Laravel Valet を開発環境として使用することもできます。Laravel Valet は、Symfony、CakePHP 3、Slim と Zend、WordPress などのフレームワークをサポートしています。
Laravel は Blade と呼ばれるテンプレート エンジンを使用します。他のテンプレート エンジンに比べて優れている点の 1 つは、他のエンジンでは使用できない PHP を Blade で使用できることです。 Packalyst は Laravel ソフトウェア パッケージのコレクションで、プロジェクトで使用できる 15,000 以上のソフトウェア パッケージが含まれています。 Laravel は、次のようなさまざまなセキュリティ機能とメソッドを提供します。 認証
と Fluent Query Builder は、PDO パラメーター バインディングを使用する場合の SQL インジェクション攻撃を防止します。 クロスサイト リクエスト フォージェリ (CSRF) 保護もデフォルトで有効になっており、アプリケーションで HTML フォームを定義するときは常に、フォームに非表示の CSRF _token フィールドを含める必要があります。
Laravel 用アーティザン コンソールコマンドライン ツールを使用すると、開発者は反復的なタスクを自動化し、フレームワーク コードを迅速に生成できるため、開発がスピードアップします。 PHP のベンチマークを行う必要がある場合、選択できる最も高速な PHP フレームワークは Laravel です。
Laravel エコシステムには、CSS および JS リソースをコンパイルするための
Mixや OAuth 認証のための Socialite など、いくつかの便利なツールがあります。 Laravel は、大規模な開発者コミュニティ (WordPress など) の恩恵を受けています。
編集者がいくつかのコミュニティ アドレスをまとめました:
コース、ブログ、ポッドキャスト、フォーラムを含む学習ポータル
#laravel ビデオチュートリアル:
laravel 技術記事:
コース推奨:
#Laravel 9 中国語 Web サイトで新たに公開されました。「Laravel 9 は学習の時間です - 乳母レベルのチュートリアル、学習するのは難しいです!」 >>Web 職人向けに特別に構築された PHP フレームワークの最新バージョンである Laravel 9 を体験してください。これにより、コードがよりアーティストの作品のようになります。
(通常価格¥279元、期間限定割引価格¥166元、1日限り)
このコースはゼロから始めて使い方を学びます。世界で最も人気のある PHP フレームワークを使用してあらゆるプロジェクトを開発すると、開発とメンテナンスの時間が大幅に節約され、開発効率が向上します。
(長押しして開く QR コードを特定します)
Symfony
Symfony はどちらも PHP ですフレームワークと Web サイトを構築するための PHP コンポーネントのコレクション。 Symfony の概要
リリース日: 2005 年 10 月 現在のバージョン: Symfony5.1.4
技術要件:
PHP>=7.2.5
Support Composer のインストール
Symfony は、スケーラビリティを必要とする Web サイトやアプリケーションに最適です。モジュール式コンポーネント システムは柔軟なので、さまざまなプロジェクトに必要なコンポーネントを選択できます。 Symfony は、一般的な PHP フレームワークのほとんどのデータベースをサポートしています:
Drizzle
MySQL
Oracle
PostgreSQL
SAP Sybase SQL Anywhere
SQLite
Symfony はデータ マッパーを使用してオブジェクトをデータベースにマップします。これにより、オブジェクト モデルとデータベース スキーマが分離されます。つまり、データ テーブルの列を変更する必要がある場合に、コードベースに複数の変更が加えられています。
Symfony プロジェクトのデバッグは非常に簡単です。
Symfony は、学習が簡単で高速かつ安全な
Twigテンプレート エンジンを使用します。 Packagist には、ダウンロードして使用できる
4000 を超える Symfony パッケージがリストされています。 Symfony は Sensio Labs から商用サポートを受けています。これは、他のほとんどの PHP フレームワークとは異なり、Symfony には専門的なサポート チームがあり、サポート期間が 3 年間の長期バージョン サポートがあることを意味します。
CodeIgniter
CodeIgniter框架可以帮助您快速构建web应用程序,因为它具有最小的配置。 CodeIgniter快速了解 发布日期:2006年2月 当前版本:CodeIgniter4.0.3 技术要求: PHP>=7.2 数据库支持MySQL、PostgreSQL、SQLite3 CodeIgniter的优点 CodeIgniter以其运行速度著称,它是我们在PHP基准测试中尝试的四个PHP框架中速度第二快的。 CodeIgniter框架的占用资源很小(1.2MB),您可以添加所需的组件。 CodeIgniter很灵活:它鼓励使用MVC架构进行开发,但您也可以编写非MVC应用程序。 该框架内置了对CSRF和XSS攻击的防御措施,以及上下文相关的转义和内容安全策略。 CodeIgniter支持多种缓存方法,以加快应用程序的运行速度。 如前所述,与其他框架相比,CodeIgniter具有简单的学习曲线,并且具有很强的可扩展性。 CodeIgniter的社区由一个论坛和Slack组组成。 推荐教程: 《CI框架30分钟极速入门》 Zend Framework / Laminas Project Zend框架是一个久负盛名的PHP框架,现在正在向Laminas Project过渡。 如果您的项目正在使用Zend, 小编强烈建议您将项目迁移到Laminas,因为Zend不再更新。 Laminas Project由3部分组成: 1. Laminas组件和MVC 2. Mezzio 3. Laminas API工具 Laminas 快速了解 发布日期:2006年2月 当前版本:3.0.0 (Zend) or 1.3.0 (Laminas) 技术要求: PHP>=5.6(Zend)或>=7.3(Laminas) 支持Composer方式的安装 数据库支持MariaDB、MySQL、Oracle、IBM DB2、Microsoft SQL Server、PostgreSQL、SQLite和Informix Dynamic Server Laminas/Zend的优点 Zend框架的下载量超过5.7亿,它也是企业使用最多的PHP框架。Zend遵循PHP框架互操作组(PHP Framework Interop Group 简称为PHP-FIG)标准,这意味着其代码可以轻松地移植到其他框架。 与Symfony一样,您可以使用所需的组件,您可以使用Zend构建RESTful API。 Laminas社区有一个论坛和Slack组,用于开发者协作和框架支持。 Yii (Framework) 这个框架的名字叫Yii,在汉语中的意思是“简单而进化”。它还代表“Yes, It Is!” Yii 快速了解 发布日期:2008年10月 当前版本:Yii2.0.35 技术要求: PHP>=5.4.0 推荐PHP7以上版本 支持Composer方式的安装 数据库支持SQLite、MySQL、PostgreSQL、MSSQL或Oracle Yii 的优点 你可以在几分钟内快速上手。因为它的文档编写良好,易于理解。 Yii框架有几个安全措施,如bcrypt密码哈希、加密、身份验证和授权。它的文档中提供了防止SQL注入、XSS和CSRF攻击的最佳实例,不容错过。 Gii代码生成器可以快速为您构建骨架代码,节省开发时间。 Yii支持四种类型的缓存来加速web应用程序:数据缓存、片段缓存、页面缓存和HTTP缓存。 您可以在Yii项目中运行第三方代码。 Yii社区通过Slack或IRC提供在线实时支持。Yii的生态圈还包括一个讨论论坛和社交媒体渠道。该社区向其活跃成员颁发名人堂徽章和参赛机会。 Yii框架视频教程推荐: CakePHP CakePHP是一个快速、干净的PHP开发框架。 CakePHP 快速了解 发布日期:2005年4月 当前版本:CakePHP4.1.1 技术要求: PHP>=7.2 推荐PHP7.4 支持Composer方式的安装 数据库支持MySQL 5.6+, MariaDB 5.6+, PostgreSQL 9.4+, SQLite 3.8, SQL Server 2012+ CakePHP的优点 CakePHP配置最少、最容易上手,因为您不必处理XML或YAML文件。一旦完成了数据库配置,就可以开始愉快编码了。 CakePHP有自己的内置ORM,使用起来既快速又简单,它的安全特性包括加密、密码哈希、表单数据保护和CSRF防御。 CakePHP的组件和助手函数简化了开发,减少了您必须执行的普通任务的数量。 Github提供了一个有用的CakePHP资源和插件列表。https://www.php.cn/course/760.html
https://www.php.cn/toutiao-362431.html
https://github.com/friendsofcake/awesome-cakephp
Slim
Slim是一个精简、灵活的微型PHP框架,由JoshLockhart创建。它关注于接收HTTP请求、调用回调和返回HTTP响应。
Slim 快速了解
发布日期:2010年9月
当前版本:Slim4.5.0
技术要求:
PHP>=7.2
具有URL重写的Web服务器
Slim的优点
Slim的代码库很精简,因为它没有第三方依赖关系,因此,运行速度非常快。
Slim特别适合构建小型应用程序和程序接口,此外Slim还集成了第一方和第三方组件。
Slim很容易学习和理解。你可以在几分钟内运行一个“Hello World”应用程序。Slim被Sland网站上的开发人员评为最佳的PHP框架。
Tidelift提供对Slim的专业支持。
Phalcon
Phalcon是为提高速度而构建的PHP框架,它最初是作为以Zephir和C编写的web服务器的扩展而出现的,但是您不需要了解C。Phalcon可以使开发人员使用由框架生成的PHP类和命名空间。
Phalcon 快速了解
发布日期:2012年11月
当前版本:Phalcon4.0.6
技术要求:
PHP>=7.2
PSR扩展
Phalcon的优点
Phalcon设计的初衷是使项目快速运行,因为它具有以下特点:
架构简单。
Zephir、C扩展和PHP的一次性加载。
代码是编译的,而不是解释的,因此速度更快。
内存常驻,意味着您可以随时在需要时调用它。
与大多数其他PHP框架不同,Phalcon不使用文件读取和文件统计信息,从而提高了性能。
由于Phalcon是松散耦合的,因此您可以创建自己的目录结构,再者Phalcon底层代码不存在于项目目录中,这一点使得代码变得很轻量级。
Phalcon的安全组件有助于密码哈希和CSRF保护,模板引擎Volt速度非常快,并且附带了很多扩展类库,可以帮助您轻松创建视图。
遇到任何问题,您可以通过Phalcon的文档、论坛、Discord chat、Stack Overflow和多个社交媒体平台寻求解决方案与支持。
FuelPHP
FuelPHP是一个社区驱动的PHP框架,由300多个贡献者参与完成。
FuelPHP 快速了解
发布日期:2011年6月
当前版本:FuelPHP1.8.2
技术要求:
PHP>=5.4
任何wed服务器
FuelPHP的优点
FuelPHP也采用了MVC架构模式,但也支持HMVC(Hierarchical Model View Controller),即在控制器和视图之间添加另一层。
HMVC设计模式的优点是:
更好的代码组织
更大的模块化
更具扩展性
鼓励代码重用
您可以为您的项目选择所需要的文件和文件夹结构,因为FuelPHP在这方面的约束很少。
此外,FuelPHP非常重视安全性,具有以下特性:
输出编码
CSRF保护
输入、URI和XSS过滤
用户的输入会被转义后才参与组建SQL语句
FuelPHP には独自のコマンド ライン ユーティリティ、oil があり、タスクの実行、コードのデバッグ、パブリック コンポーネントの生成に使用できます。
さらに、FuelPHP の ORM 機能は非常に強力ですが、非常に軽量でもあります。 FuelPHP フォーラム、Facebook、Twitter で FuelPHP コミュニティに参加できます。
Fat-Free-Framework
##Slim, Fat-Free-Framework と同様 (F3 と呼ばれます) ) は、効率的な機能、フレームワークの単純さ、使いやすさ、速度の間のバランスを達成することを目的としたマイクロフレームワークでもあります。Fat-Free-Framework の簡単な紹介
リリース日: 2009現在のバージョン: Fat-Free-Framework3.7.2技術要件:Fat-Free-Framework の利点
F3 のコード ベースは約 65Kb であるため、たとえ F3 であっても非常に高速に実行されます。非常に軽量ですが、F3 には期待されるすべての機能が備わっています。オプションのプラグインを使用して、必要に応じてフレームワークを拡張できます。 F3 は非常に簡単に始めることができます。箱から出してすぐに動作します。始めるのに Composer、curl、または依存関係の注入を使用する必要はありません。Hello World アプリケーションは数分で作成できます。 F3 のほぼすべての要素はモジュール式であるため、Web アプリケーションの構築に必要な部分のみを使用できます。F3 はデフォルトで不要なコードを追加しないため、アプリケーションは常に最適な状態に保たれます。できる」状態。 F3 のドキュメントも非常に明確で理解しやすく、多数のデモンストレーション例が含まれています。 Fat-Free フレームワークでは、テンプレート エンジンの選択肢が提供されます。PHP、F3 独自のテンプレート エンジン、または Smarty や Twig などの他のテンプレート エンジンを使用できます。 F3 開発者は通常、Slack と Fat-Free Framework Google Group で活動しています。7: 初心者に最適な PHP フレームワークはどれですか?
初心者の場合、ThinkPHP フレームワークなど、開始段階ではよりシンプルで中国人に適したフレームワークを選択するのが最善です。#初心者がシンプルなフレームワークをマスターした後、より豊富な機能を備えた分野に入り、複雑で大規模な機能に触れることができます。スケール Laravel のようなフレームワークの方が便利で、学習意欲をそぐことはありません。
では、どの PHP フレームワークがお気に入りですか?またその理由は何ですか?以下のコメント欄でお知らせください。