一:什么是PHP框架?
PHP框架简单来说,就是由PHP语言编写的一种可以在项目开发过程中,提高开发效率,创建更为稳定的程序,并减少开发者重复编写代码的基础架构,目前国内最流行的是ThinkPHP和Laravel框架。
萤火虫技术《第20期PHP小白到大牛三个月直播班》选择的是就是国内用的最多,也是最适合入门的ThinkPHP6框架教学。(注:20期刚开课,还剩少量名额,欲报名从速!)
报名咨询↓↓↓
QQ/微信:27220243(钟老师)、 微信:phpcn01 (月月老师)
(长按识别添加微信)
二:为什么要使用PHP框架?
与使用原生PHP语言从头开始编码相比,使用PHP框架有很多优势。
1、加快开发进度
因为PHP框架有内置的库和工具,所以大大缩短了项目开发所需的时间。
例如,CakePHP框架有Bake命令行工具,它可以快速创建应用程序中所需的任何框架代码。几个流行的PHP框架都集成了PHPUnit库,以便于测试。
2、要编写的代码更少
使用框架内置的函数意味着不需要编写太多原始代码。
3、功能性资源库很多
开发人员需要在web应用程序中执行的许多常见的任务,例如表单验证、数据清理和CRUD操作(创建、读取、更新和删除)。
使用框架就不必为这些任务编写自己的函数,只需使用框架封装好的函数即可。
4、遵循良好的编码实践
PHP框架通常遵循编码的最佳实践性,例如,他们根据功能将代码整齐地划分为多个目录。
这些目录迫使您以更干净、整洁和更易维护的方式组织代码。
框架也有自己的变量、目录、空间等命名规范,您应该遵循这些约定。
5、比自己编写的应用程序更安全
项目上线以后可能存在很多PHP安全威胁,包括跨站点脚本、SQL注入攻击和跨站点请求伪造。除非您采取正确的应对措施去保护您的程序,否则您的PHP web应用程序将易受攻击。
虽然使用PHP框架并不能代替编写安全代码,但它可以最大限度地减少黑客利用漏洞的机会。好的框架具有内置的数据清理功能,可以抵御上述常见威胁。
6、更好的团队合作
如果以下方面不明确,团队开发的项目可能会出错:
文档
设计决策
规范标准
使用框架为项目设置了明确的基本规则。即使其他开发人员不熟悉该框架,他们也能够快速学习并协同工作。
7、易于维护
PHP框架鼓励代码重构,并促进DRY开发(DRY-Don’t Repeat Yourself),由此产生的更精简的代码库需要更少的维护。
您也不必担心维护框架核心,因为框架开发者会为您维护。
三:使用PHP框架之前需要了解的内容
1. PHP原生基础
在使用PHP框架之前,您首先要掌握PHP原生基础!
如果您对该语言没有很好的掌握,那么您将很难掌握基于PHP封装的框架。
推荐教程:
公益免费课:
01.《小白拯救者: PHP7基础语法快速预览》
https://www.php.cn/course/1147.html
02.《php8,我来也》
https://www.php.cn/course/1188.html
收费课:
01.VIP会员专属课:前端+后端PHP+实战(录制课)
https://www.php.cn/vip.html
02.线上直播班:前端+后端PHP+综合实战(含辅导解答、作业批改)
https://www.php.cn/k.html
详见:《20期PHP小白到大牛三个月直播班》
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类在HTML中输出PHP的一种方法
安全
如果您需要构建可伸缩的应用程序,请选择支持以上功能的框架。
最后,如果想灵活运用PHP框架,离不开良好的文档和生态支持。
一个拥有大型且充满活力的社区的框架也更有可能经受住时间的考验,并且在您遇到困难时也能够为您提供帮助。
六:2022年最好的PHP框架有哪些?
下面是目前使用的一些最好的PHP框架:
1.ThinkPHP(国内使用最多,入门简单,适合初学者)
2. Laravel(全球使用最多,号称最优雅的框架,入门难)
3. Symfony
4. CodeIgniter(简称CI,非常轻量级)
5. Zend Framework / Laminas Project
6. Yii (Framework)(国内外贸行业用的较多)
7. CakePHP
8. Slim
9. Phalcon
10. FuelPHP
11. Fat-Free Framework
ThinkPHP
ThinkPHP由国人开发,是一个免费开源、面向对象的轻量级PHP开发框架。诞生于2006年初,国内使用最多,php中文网20期PHP直播班教学项目就是用的ThinkPHP6,非常适合初学者!
热门版本
ThinkPHP5.x:2015年推出,MVC模式,支持PHP>=5.6
ThinkPHP6.x:2019年全新推出,开始使用Composer安装及更新,支持PHP>=7.1
Laravel
Laravel被誉为“面向Web工匠的PHP框架”,它是由Taylor Otwell开发的,Taylor Otwell想要一个包含CodeIgniter所没有的特性的框架,比如用户身份验证。
Laravel快速了解
发布日期:2011年6月
当前版本:Laravel8 ——2020年9月8日发布。
技术要求:
PHP>=7.2.5(或使用Laravel Homestead)
支持Composer方式的安装
数据库支持MySQL 5.6+、PostgreSQL 9.4+、SQLite 3.8.8+、SQL Server 2017+。
Laravel的优点
Laravel Homestead 是 Lavarel 官方预封装的 Vagrant Box ,它为你提供了一个绝佳的开发环境,而无需你在本地机器上安装 PHP 、Web 服务器及任何其他服务器软件。妈妈再也不用担心弄乱你的操作系统了!
如果您是Mac用户,还可以选择使用Laravel Valet作为您的开发环境,Laravel Valet支持Symfony、CakePHP 3、Slim和Zend以及WordPress等框架。
Laravel使用名为Blade的模板引擎。与其他模板引擎相比,它的一个优势是可以在Blade中使用PHP,而其他引擎无法使用PHP。
Packalyst是Laravel软件包的集合,有15000多个软件包可以在项目中使用。
Laravel提供了一系列安全功能和方法,包括以下内容:
身份验证
授权
电子邮件验证
加密
散列
密码重置
Laravel Eloquent ORM和流畅的查询生成器 在使用PDO参数绑定时可以防止SQL注入攻击。
默认情况下,还启用了跨站点请求伪造(CSRF)保护,每当您在应用程序中定义 HTML 表单时,都应在表单中包含一个隐藏的 CSRF _token 字段。
Laravel的Artisan控制台命令行工具允许开发人员自动执行重复任务并快速生成框架代码,从而加快了开发速度。
如果您需要进行PHP基准测试,Laravel是您可选的PHP框架中速度最快的。
Laravel生态系统有几个有用的工具,例如用于编译CSS和JS资源的Mix,以及用于OAuth身份验证的Socialite。
Laravel受益于一个大型开发人员社区(如WordPress)。
小编为您整理了一些社区地址:
Laracasts:包含课程、博客、播客和论坛的学习门户
Laravel.io:一个拥有45000多名用户的社区门户。
The Laravel subreddit:一个拥有50000名Laravel工匠的社区门户。
laravel视频教程:
https://www.php.cn/course/list/23.html
laravel技术文章:
https://www.php.cn/phpkj/laravel/
课程推荐:
php中文网新上线的《Laravel 9 学习正当时—保姆级教程,想学不会都难!》带你领略专门为Web工匠打造的PHP框架最新版本 Laravel 9,让你的代码更像艺术家的作品!
(原价¥279元,限时折扣价¥166元,仅限1天)
本课程将从零开始,带你学会使用世界上最流行的PHP框架开发任何项目,并为你节省大量开发和维护时间,提升开发效率!
开通地址:
https://www.php.cn/course/1421.html
(长按识别二维码打开)
Symfony
Symfony既是一个PHP框架,也是一个用于构建网站的PHP组件集合。
Symfony快速了解
发布日期:2005年10月
当前版本:Symfony5.1.4
技术要求:
PHP>=7.2.5
支持Composer方式的安装
Symfony的优点
Symfony是需要可扩展的网站和应用程序的最佳选择。它的模块化组件系统非常灵活,可以让您选择多种项目所需的组件。
Symfony支持流行PHP框架中的大多数数据库:
Drizzle
MySQL
Oracle
PostgreSQL
SAP Sybase SQL Anywhere
SQLite
SQLServer
与数据库交互的最佳方式是通过 Doctrine ORM。
Symfony使用数据映射器将对象映射到数据库,这将使对象模型和数据库模式保持分离,这意味着如果您需要更改数据表的某一列,无需在代码库中进行多次更改。
使用内置工具栏Debugging调试Symfony项目非常简单。
Symfony使用Twig模板引擎,该引擎易于学习、快速且安全。
Packagist列出了4000多个Symfony软件包,可供您下载和使用。
Symfony拥有Sensio实验室的商业支持。这意味着与大多数其他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分钟极速入门》
https://www.php.cn/course/760.html
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框架视频教程推荐:
https://www.php.cn/toutiao-362431.html
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://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
技术要求:
PHP>=5.4
数据库支持MySQL、SQLite、MSSQL/Sybase、PostgreSQL和MongoDB。
Fat-Free-Framework的优点
F3的代码库大约为65Kb,因此运行速度很快,别看它很轻,F3仍然具备了您所期望的所有功能。您可以根据需要使用可选插件对框架进行扩展。
F3上手非常容易,开箱即用,无需使用Composer、curl或依赖注入即可开始使用,您可以在几分钟内创建Hello World应用程序。
F3所有的元素几乎都是模块化的,因此您可以只使用构建web应用程序所需的部分,F3默认情况下不会添加您不需要的代码,从而使您的应用程序保持在最“干练”的状态。
F3的文档也很清晰易懂,并附有大量的示例演示。Fat-Free框架提供了模板引擎的选择:您可以使用PHP、F3自己的模板引擎或其他模板引擎,如Smarty或Twig。
F3开发人员一般在Slack和Fat-Free Framework Google Group上比较活跃。
七:对于初学者来说,哪种PHP框架最好?
对于初学者来说,起步阶段最好选择那些更简单、更适合国人的框架,比如ThinkPHP框架。
初学者掌握了简单的框架以后,你就可以进入一个功能更加丰富的领域了,届时再接触复杂大型框架,比如laravel就比较得心应手了,也不会浇灭学习的热情。
那么您最喜欢哪种PHP框架,为什么?请在下面的评论中告诉我们!
发表评论 取消回复