php做后端的坏处(全球最流行的PHP框架清单)

wufei123 发布于 2024-01-31 阅读(122)

进行Web项目开发,除了HTML,CSS和JavaScript之外,大部分人可能会首先想到的是PHP语言与一些流行的看法相反的是,PHP尚未死甚至被网站广泛使用,包括Facebook和Wikipedia等全球知名的企业。

根据W3Techs的说法,PHP在所有的网站程序中约占79%的比例在服务器端编程语言中将近竞争对手ASP.NET的八倍在过去的一年(2019.9-2020.9)中,PHP的使用份额维持在近80%占有率

PHP近一年的市场占有率一般情况下,PHP程序员经常会借助PHP框架来编写代码,而不是从零开始那么什么是PHP框架,为什么要使用它们,及与大家分享一些最受欢迎的PHP框架什么是PHP框架?PHP框架是用于创建PHP类型的Web应用程序的平台。

PHP框架提供了常用功能的代码库,从而减少了开发人员需要编写的原始代码量为何使用PHP框架?与从零开始编写代码相比,使用PHP框架有很多充分的理由1.更快的开发效率由于PHP框架提供内置的库和工具,因此开发所需的时间更少。

例如,CakePHP框架提供Bake命令行工具,该工具可以快速创建应用程序中所需的任何框架代码几个流行的PHP框架集成了PHPUnit库,以便于测试2.减少编写代码量使用框架内置的功能意味着您不需要编写太多原始代码。

3.常见任务库开发人员在Web应用程序中需要执行的许多任务是常见的示例包括表单验证,数据清理和CRUD操作(创建,读取,更新和删除)您不必为这些任务编写函数,而是直接使用框架中的提供的函数即可4.遵循良好的编码习惯。

PHP框架通常遵循最佳编码实践。例如,它们根据功能将代码整齐地划分为多个目录。

Symfony默认目录结构有了这样的标准规范,程序员自然而然以更简洁,更整齐且更易于维护的方式组织管理代码框架还明确了程序员应遵循的针对实体的命名约定5.漏洞更少代码更加安全有许多PHP安全威胁,包括跨站点脚本编写,SQL注入攻击和跨站点伪造请求。

除非参与代码编写的所有人员都能够采取正确的步骤来保护代码,否则使用PHP编写的Web应用程序将很容易受到攻击使用PHP框架不是说100%的安全,但可以最大程度地减少黑客利用的机会毕竟优秀的PHP框架提供内置的数据清理功能,并且及时得到良好的维护,可以防御上述常见威胁。

6.便于技术团队合作如果不明确,存在多个开发人员的项目可能会在以下要点出错:文献资料设计决策规范标准使用框架可以为项目设立明确的基本规则即使其他开发人员不熟悉该框架,他们也应该能够快速学习并进行协作7.易于维护

PHP框架鼓励代码重构并提倡DRY(Don’t Repeat Yourself))开发产生的精简代码库需要较少的维护您也不必担心维护核心框架,参与框架维护的开发人员已为您完成了这一工作使用PHP框架前的准备。

使用PHP框架之前,您需要了解的第一件事就是PHP本身!如果您对该语言本身就不清楚,那么将很难选择哪一个框架大多数框架都在PHP 7.2或更高版本上运行如果您是PHP语言的初学者,可以参考以下网站深入了解:。

PHP官方文档W3Schools的PHP教程PHP: The Right WayPHP完全自学手册PHP 7.4(当前版本)PHP 8新特性(下一版本)接下来,您应该已经构建了一些自己的PHP应用程序,因此您要前端和后端的要求有较清晰的了解。

PHP面向对象编程-大多数PHP框架都是面向对象的确保您了解类,对象,继承,方法,特征和访问控制修饰符之类的概念数据库与SQL语法-由于许多Web应用程序都连接到数据库,您还应该对数据库和SQL语法进一步熟悉了解。

每个PHP框架都有其自己的受支持数据库列表对象关系映射(ORM)模型-ORM是一种使用面向对象的语法而不是使用SQL访问数据库数据的方法这意味着您可以使用熟悉的PHP编写数据库查询,尽管有时可能要使用SQL。

许多PHP框架都有自己的内置ORM例如,Laravel使用Eloquent的ORM其他框架则使用开源ORM,如Doctrine网络服务器的工作方式-了解Apache和Nginx等网络服务器的工作方式将很有帮助。

因为开发人员可能需要在服务器上配置文件,以使应用程序获得最佳运行本地环境搭建-可能会在本地进行开发测试,因此对localhost也要有一定的了解又或者使用Vagrant和VirtualBox搭建虚拟环境,创建和测试Web应用程序。

(相关文章阅读:2020年最新版本WordPress本地环境搭建与安装教程)模型-视图-控制器架构PHP框架通常遵循模型-视图-控制器(MVC)设计模式。该概念将数据的处理与其表达分开。

模型-视图-控制器逻辑流程(图片来源:Wikimedia Commons)模型(Model )存储业务逻辑和应用程序数据它将数据传递到视图(View),表示层用户(USER)与视图进行交互并且可以通过控制器(Controller)

输入指令控制器将这些命令传递给模型,然后循环继续进行简而言之,模型与数据有关,视图与外观有关,而控制器与行为有关关于MVC模式的一个贴切比喻是在酒吧点一杯鸡尾酒用户是需要到达酒吧(视图)的顾客用户将他们的饮料订单交给调酒师(。

控制器)调酒师根据配方,配料和设备(模型)制作订单需求根据鸡尾酒的不同,他们可能会使用以下任何一种或其他物品:酒果汁冰柠檬玻璃鸡尾酒摇杯橄榄搅拌器鸡尾酒成品放在酒吧上供User享用如果User想要再喝一杯,他们必须首先与Controller交谈。

他们不允许进入Model并自己调制饮料用PHP应用程序术语,MVC可以对应以下内容:模型:数据库视图:一个或多个HTML页面控制器:用于访问和更新数据库的功能使用PHP框架时,习惯使用命令行界面(CLI)会有所帮助。

Laravel有自己的CLI,Artisan Console使用Artisan中的make命令,您可以为项目快速构建模型,控制器和其他组件熟悉命令行也是使用Composer的PHP包管理器的关键Yii框架则使用Composer来安装和管理。

依赖项(即应用程序运行所必需的包)。Packagist是可以与Composer一起安装的主要存储库包。一些受欢迎的Composer包经常会跟Symfony框架联合一起运行。

Packagist热门Packages包如何选择PHP框架?在为项目选择最佳的PHP框架时,需要考虑以下因素首先,如果您不熟悉PHP框架,建议选择学习曲线不太陡峭的框架尤其是框架如果太难掌握,您又不想花费宝贵的时间来学习。

然后,您需要一个易于使用并节省时间的框架PHP框架应满足您对项目的技术要求大多数框架都会最低的PHP版本要求和可以使用的某些PHP扩展确保选择的框架支持您希望使用的数据库,并且可以将该框架与要部署到的Web服务器一起使用。

选择具有适当功能平衡的框架功能丰富的框架适用于某些比较复杂的项目如果不需要太多功能,则选择精简实用的框架框架必要的一些功能是:测试缓存存储模板引擎:使用PHP类在HTML中输出PHP的方法安全如果您需要构建。

可扩展的应用程序,请选择一个支持此功能的框架最后,PHP框架拥有良好的文档和支持很重要,如果网上可参考学习资料少之又少,建议不要采用此框架存在活跃的社区的框架更有可能经受住时间的考验,并且在遇到困难时也能够为您提供帮助,活跃的社区证明该框架得到大量的技术人员支持。

最流行的PHP框架PHP发展至今,我们很难去整理出全球现有的PHP框架产品列表清单单Wikipedia网站整理列出的就有40个PHP框架,并且其中一些框架可能称之为内容管理系统更适合些早期的PHP框架包括PHPlib,Horde和Pear。

现在,大多数知名框架都在2005年或之后推出下面将列举当今使用的一些最好的PHP框架Laravel

LaravelLaravel被称为“ Web工匠的PHP框架”,由Taylor Otwell开发的,该框架包含CodeIgniter所没有的元素,例如用户身份验证配置指南始于:2011年6月当前版本:v8,发布于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很容易上手,一个为您量身定制的虚拟开发环境Laravel Homestead是一个官方预先封装好的Vagrant box,为开发人员提供一个绝佳的开发环境,而无需开发人员在本地计算机上安装PHP,Web服务器和任何其他服务器软件。

无需担心搞砸您的操作系统!如果是Mac用户,还可以选择使用Laravel Valet作为开发环境顺便提一下,Laravel Valet支持Symfony,CakePHP 3,Slim和Zend以及WordPress。

Laravel使用名为Blade的模板引擎与其他模板引擎相比,它具体的一个优点是可以在Blade中使用PHP,而其他则无法做到Packalyst是Laravel包的集合,其中包含超过15,000个可以在项目中使用的包。

Laravel提供了一系列安全功能和方法,包括:Authentication(认证方式)Authorization(授权)Email verification(电子邮件验证)Encryption(加密)

Hashing(散列法)Password reset(重设密码)Laravel的Eloquent ORM和Fluent Query Builder使用PDO参数绑定来防范SQL注入攻击默认情况下,也会启用使用隐藏的CSRF表单令牌的跨站点请求伪造(CSRF)保护。

Laravel使用的Artisan Console命令行工具通过允许开发人员自动执行重复任务并快速生成框架代码来加快开发速度当进行PHP基准测试时,Laravel是目前尝试过的最快的PHP框架Laravel生态系统提供了不少有用的工具,例如用于编译CSS和JS的。

Mix和用于OAuth身份验证的SocialiteLaravel受益于庞大的开发人员社区:Laracasts:一个包含课程,博客,播客和论坛的学习门户Laravel.io:一个拥有超过45,000个用户的社区门户。

Laravel subreddit:50,000名Laravel工匠的家哪些企业/项目在用Laravel?Vogue archive – 时尚Ascot – 赛马场Camping World RV & Outdoors。

– 零售Restaurants.com – 餐馆搜索引擎Barchart – 股票Visit Maine – 旅游Fischer Homes – 建筑Explore Georgia – 旅游Symfony

SymfonySymfony既是一个PHP框架,又是用于搭建网站的PHP组件集合配置指南始于:2005年10月当前版本:5.1.4技术要求:PHP> = 7.2.5已安装ComposerSymfony的优点。

对于需要可扩展的网站和应用程序,Symfony是一个绝佳的选择它的模块化组件系统非常灵活,可以让您选择项目所需的组件Symfony支持主流PHP框架中的大多数数据库:DrizzleMySQL甲骨文PostgreSQL

SAP Sybase SQL AnywhereSQLiteSQLServer与数据库交互的最佳方法是通过Doctrine ORMSymfony使用数据映射器将对象映射到数据库这使对象模型和数据库架构保持分离,这意味着如果更改数据库列,则无需在代码库中进行逐一更改。

使用内置工具栏,调试Symfony项目非常简单Symfony使用Twig模板引擎,该引擎易于学习,快速且安全Packagist列出了4,000多个Symfony包供技术人员下载和使用Symfony还得到了Sensio Labs的商业支持。

这意味着可以提供专业支持,这与大多数其他PHP框架不同它还提供3年更新维护的长期支持版本Symfony开发人员可以通过多种渠道获得培训和帮助:完整的说明文档Sensio Labs University,Symfony电子学习平台

SymfonyCastsSymfony认证Symfony conferences此外,Symfony社区也非常庞大,至少有60万开发人员参与哪些企业/项目在用Symfony?Sainsbury’s Magazine。

– 出版Intelius – 人物公共数据搜索Sony VAIO UK site – 零售Sabatier Shop – 零售Foot District – 零售Nobel Peace Prize – 组织机构

还有一些知名公司在他们的项目中使用Symfony组件,包括Drupal, Joomla和Magento。CodeIgniter

CodeIgniterCodeIgniter框架仅需简单的配置,即可帮助技术人员快速构建Web应用程序配置指南始于:2006年2月当前版本:4.0.3技术要求:PHP> = 7.2支持MySQL,PostgreSQL,SQLite3数据库。

CodeIgniter的优点CodeIgniter以速度闻名,在我们的PHP基准测试中速度位列第二位(仅供参考)该框架的占用空间小(下载体积仅1.2MB),技术人员可以按需添加其他的组件CodeIgniter。

非常灵活:鼓励使用MVC架构进行开发,但也可以编写非MVC应用程序的代码该框架包括针对CSRF和XSS攻击的防御措施,以及上下文相关的转义和内容安全策略CodeIgniter支持多种缓存方法,可加快应用程序速度。

如前所述,与其他框架相比,CodeIgniter具有易于学习的曲线,并且拥有很好的可扩展性CodeIgniter的社区包括官方论坛和Slack讨论组哪些企业/项目在用CodeIgniter?G-Shock。

– 零售WooBox – 市场Buffer – 技术TestandTrack – 教育Casio – 技术Bike Easy – 户外Barracuda – IT安全FuelCMS – 内容管理系统Zend Framework / Laminas Project

Zend 框架Zend框架是一个历史悠久的PHP框架,不过现在已经过渡到Laminas Project如果你还在用Zend框架开发项目,强烈建议迁移到Laminas Project,因为Zend不再更新。

Laminas Project包含3个部分:Laminas组件和MVCMezzioLaminas API工具配置指南始于:2006年3月当前版本:3.0.0(Zend)或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数据库。

Zend / Laminas的优点Zend框架的安装量已超过5.7亿,它也是企业最常用的PHP框架Zend遵循PHP-FIG标准,也就是说其代码可以轻松移植到其他框架与Symfony一样,技术人员可以仅使用所需的组件。

您可以使用Zend构建RESTful APILaminas社区包括官方论坛和Slack讨论组,以提供协作和支持哪些企业/项目在用Zend/Laminas?在Zend官方主页可以了解到,很多大型公司都在使用Zend框架,包括。

BBC – 媒体BNP Paribas – 金融Cisco Webex – 视频会议Yii (Framework)

Yii Framework这个框架名称Yii,中文的意思是“易”,也代表“Yes, It Is!”配置指南始于:2008年12月当前版本:2.0.35技术要求:PHP> = 5.4.0,建议7+已安装Composer

支持SQLite,MySQL,PostgreSQL,MSSQL或Oracle数据库Yii的优点您可以在数分钟内使用Yii并开始运行Yii框架官方文档写得很好并且易于理解和遵循Yii Framework具有多种安全措施,例如Hash算法密码,加密,身份验证和授权。

该文档提供了防止SQL注入,XSS和CSRF攻击的最佳实践GII代码生成器可以帮助技术人员快速构建框架代码,大大节省更多的时间。

Gii code generatorYii支持四种类型的缓存以加速Web应用程序:数据缓存,片段缓存,页面缓存和HTTP缓存并且支持在Yii项目中运行第三方代码Yii社区通过Slack或IRC提供讨论支持,你也可以通过。

论坛和社交媒体渠道支持社区会通过徽章和进入名人堂的方式奖励活跃的成员哪些企业/项目在用Yii?Crowdcube – 众筹平台WordCounter – 编辑工具Which? – 消费者网站Purple。

– 零售YMCA – 非营利组织Pastebin – 在线工具Fast Company Events – 现场&在线活动CakePHP

CakePHPCakePHP提供了快速,简约的PHP开发解决方案配置指南始于:2005年4月当前版本:4.1.1技术要求:PHP 7.2(最低),7.4推荐首选使用mod_rewrite的HTTP服务器。

数据库支持MySQL 5.6 +,MariaDB 5.6 +,PostgreSQL 9.4 +,SQLite 3.8,SQL Server 2012+CakePHP的优点配置极少您不必倒腾XML或YAML文件。

建立数据库后,即可开始编码了CakePHP内置ORM,使用起来简单快捷安全功能包括加密,哈希密码,表单数据保护和CSRF保护等CakePHP的组件和助手简化了开发并减少了技术人员必须执行任务数量Github整理提供了一个非常有用的

CakePHP资源和插件列表技术人员可以通过cookbook(文档),在线培训和CakeFest会议来学习CakePHP还可以通过论坛,Stack Overflow,IRC和Slack找到友好的CakePHP技术人员。

也可以从CakePHP创始人Larry Masters运行的Cake DC中获得专业支持哪些企业/项目在用CakePHP?Visit NC – 旅游10 Fast Fingers – 教育Coconala。

– 电子学习市场GoodFirms – 软件市场Printivo – 电子商务Citizens, Inc – 金融Slim

Slim框架Slim是由Josh Lockhart创建的精简,敏捷的微型PHP框架,该框架着重于接收HTTP请求,调用回调并返回HTTP响应配置指南始于:2010年9月当前版本:4.5.0技术要求:PHP 7.2以上

支持URL重写的Web服务器Slim框架的优点Slim的代码库是极其精简,因为没有第三方依赖性,追求极致性能Slim特别适合构建小型应用程序和API如果需要从框架中获取更多支持,Slim集成了第一方和第三方组件集成。

Slim框架易于学习和理解,只需几分钟即可运行一个“ Hello World”应用程序。在Slant网站,Slim被开发人员评为最佳PHP框架(称号这东西仅适合参考)。

谁才是最佳PHP框架?通过Tidelift可获得专业的Slim技术支持哪些企业/项目在用Slim?Top Web Comics – 出版Canine Principles – 培训CG Forge – 教育。

Betterplace Academy – 教育Phalcon

PhalconPhalcon是一个为提高速度而构建的PHP框架,使用Zephir和C语言编写的Web服务器扩展但开发人员不需要C的知识,而是使用框架生成的PHP类和命名空间配置指南始于:2012年11月。

当前版本:4.0.6技术要求:PSR扩展PHP 7.2 +(建议最新版本)Phalcon的优点Phalcon被设计为可快速运行,具有以下功能:低层级架构一次性加载Zephir,C扩展和PHP代码通过编译而不是解释的,速度更快。

常驻内存,这意味着可以在需要时调用与大多数其他PHP框架不同,它不使用文件读取和文件统计信息,从而提高了性能由于Phalcon是松散耦合的,因此开发人员可以创建自己的目录结构Phalcon的代码不存在于项目目录中,so代码轻巧。

Phalcon的安全组件有助于哈希密码和CSRF保护Phalcon的模板引擎Volt非常快,并带有帮助程序类,可轻松创建视图您可以通过Phalcon的文档,论坛,Discord聊天,Stack Overflow。

和多个社交媒体平台寻求帮助支持哪些企业/项目在用Phalcon?根据Phalcon BuiltWith网站信息,以下项目使用Phalcon:Learny Online – 学习Outsmart – 数据分析。

Marchi Auto – 汽车经销商FuelPHP

FuelPHPFuelPHP是一个社区驱动的PHP框架,在其生命周期内有300多个贡献者配置指南始于:2011年6月当前版本:1.8.2技术要求:PHP 5.4以上任何网络服务器FuelPHP的优点FuelPHP使用MVC,但也支持

HMVC(分层模型视图控制器)这将在Controller和View之间添加另一层HMVC设计模式的优点是:更好的代码组织高度模块化高度可扩展提倡代码重用您可以选择项目所需的文件和文件夹结构,因为几乎没有限制。

FuelPHP具有以下功能,非常重视安全性:输出编码CSRF保护输入,URI和XSS过滤转义用户输入传递给SQL语句FuelPHP使用自己的命令行工具-oil,技术人员可以用它来运行任务,调试代码,及生成常用的组件。

FuelPHP ORM强大而轻巧可通过官方论坛以及社交媒体Facebook和Twitter上加入FuelPHP社区哪些企业/项目在用FuelPHP?Wan Wizard – FuelPHP的开发人员之一Harro Verton。

Front Desk – 物业管理系统Fat-Free Framework

Fat-Free Framework像Slim一样,Fat-Free Framework(F3)是一个微型框架,该框架旨在在有用的功能之间的平衡性,简单易用又追求性能速度配置指南始于:2009年当前版本:3.7.2。

技术要求:PHP 5.4以上任何网络服务器支持MySQL,SQLite,MSSQL / Sybase,PostgreSQL和MongoDB数据库Fat-Free Framework的优点代码库体积约为65Kb,。

速度很快麻雀虽小,五脏俱全,F3仍然拥有您所期望的大部分功能,并且可以使用可选插件扩展它Fat-Free Framework极其易上手,无需使用Composer,curl或依赖项注入器即可入门使用它可以在几分钟内创建一个Hello World应用程序。

几乎所有框架都是模块化的,因此您只需要使用构建Web应用程序所需的部分即可默认情况下,F3不会添加不需要的代码,以使应用程序保持最小化F3提供的文档清晰易懂,并带有大量示例Fat-Free Framework提供了多种模板引擎供您选择:可以使用PHP,F3自己的模板引擎或其他诸如Smarty或Twig的模板引擎。

F3开发人员一般通过Slack和Fat-Free Framework Google Group进行技术讨论哪些企业/项目在用Fat-Free Framework?Malwarebytes Jobs – 招聘。

Eve University Dev Pathfinder – 游戏Andiamo – 招聘Baker Online – 零售Eloquens – 公司业务PC Specs – 技术最适合初学者的PHP框架

对于初学者来说,最好的PHP框架应该是简单易学,极简至上的框架掌握了其中一种功能后,如果需要的话,就可以升级到功能更丰富的功能之一Yii应该是初学者PHP框架入门的最佳选择Yii的文档将引导您制作一个应用程序以查看国家/地区,向您介绍MVC模式以及在此过程中如何使用数据库。

使用Yii 开发的国家Web简易程序如果代码存在错误,这些错误将显而易见,从而帮助技术人员调试并快速修复改进。

未定义变量的Yii错误Slim框架易于安装。Slim有一个针对框架版本3的第一个应用教程。不幸的是,它尚未更新为Slim版本4(当前版本)。

通过Composer安装Slim 4对于Fat-Free Framework,可以选择通过Composer安装,也可以下载或解压zip文件该框架是通过一个简单的“ Hello,world”程序建立的用户指南从路由到单元测试,逐步指导您了解所有需要了解的知识。

还有一个CMS演示,帮助您可以了解所有组件如何结合在一起CodeIgniter的设置也很简单,也有完整的文档可参考。他们的“第一个应用程序”教程使用带有新闻报道的CRUD功能构建了一个简单的CMS。

CodeIgniter新闻存档页面小结如果您想减少开发PHP版本的Web应用程序的时间,那么使用长期维护的PHP框架是一个明智的选择为了充分利用PHP框架并避免遭遇各种坑,请确保您对PHP有足够的了解,并了解框架背后的基本概念:MVC架构,面向对象的语法,数据库和ORM以及命令行。

选择哪种PHP框架取决于所构建的应用程序的类型前面已经罗列了当前最受欢迎的PHP框架可供您选择,虽然未能细致逐一说明,但应该能够帮助您找到适合您的完美PHP框架提供一些思路本人编译(非首发),如有纰漏请指出!翻译不易,阅读点个赞和收藏!。

亲爱的读者们,感谢您花时间阅读本文。如果您对本文有任何疑问或建议,请随时联系我。我非常乐意与您交流。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。