春节期间,了解到一个“全新”的 WEB 开发框架:Spiral, 最开始引起我的兴趣是从同事那里听说了 RoadRunner. 然后去了解 RoadRunner 的时候看到了 Spiral. 之所以把“全新”用双引号引起来,是因为这个框架其实从 2013 年起就在它的开发团队以及一些企业客户中应用了,经历了各种实际应用场景的考验,Spiral 的功能及其丰富,性能与当前主流的 PHP 框架相比也相当出众。但这个框架源自白俄罗斯,在国内不算知名,他们团队开始重视和梳理开源,也应该是才开始的事情。

性能

Spiral 是一个基于 PHP 和 Golang 的混合开发框架,它的理念是让 PHP 负责业务逻辑(应用程序)的开发,而 Golang 负责底层基础服务,这样一来能够很好地把 Golang 的高性能和 PHP 的快速开发和快速部署结合起来。在 techempower.com 对 PHP 框架性能的测试 中,Spiral 排名第 6,远远超越了 laravel-swoole(13), phalcon(14), hyperf(15), symfony(17), laravel(18), codeigniter(21), cakephp(22)...

image.png

特性

除了性能之外,Spiral 的特性也很丰富,在服务方面,HTTP, Websocket, TCP, GRPC, Queue 一应俱全。组件也非常多,涵盖了 WEB 应用开发、命令行应用开发、GRPC 服务开发的方方面面。在官方的框架介绍页面,可以看到官方组件分为 11 个大类:

Skeletons(项目骨架)

Core(核心框架)

Dispatchers(任务调度)

HTTP Extentions(HTTP 扩展)

Security and Validation(安全和验证)

Database(数据库)

Cycle ORM(ORM 工具)

Stempler Template Engine(模板引擎)

Components(其它组件)

Integrations(与其它框架或工具的集成)

Development and Assembly(开发调试工具)

每一个大类下面都有多个组件,Spiral 的所有组件完全遵循 PSR-{2, 3, 4, 6, 7, 11, 15, 16,17} 规范来实现。开发者除了使用官方的应用骨架来快速开发 WEB 应用、命令行应用、GRPC 应用之外,也可以利用 Spiral 开源的一系列基础组件来构建自己的项目框架。

如果开发者只有 PHP 语言的知识,那么可以利用官方针对 Spiral 框架定制的二进制版本的应用服务器来获得 Golang 的高性能服务器优势。如果开发者同时还熟悉 Golang,那么除了利用 Spiral 快速开发 PHP 应用之外,还能自行定制 RoadRunner 服务器,在 HTTP, HTTPS/2, GRPC, TCP, WebSocket 等之外,加入更多的服务。

设计理念和架构

Spiral 的设计理念上面已经提到过,是 PHP 和 Golang 的混合运行时。可以理解为 Swoole 和 Laravel 的结合,但与目前的 LaravelS 或者 EasySwoole 这些框架不同之处在于,Spiral 框架下每一个工作进程是完全隔离的,所以你在开发过程中不用担心进程之间相互影响的问题。你在传统 PHP 模式下习惯的一切用法都不会改变,而所有的第三方 PHP 组件,你也可以随意使用。不用定制协程版本的数据库连接池、协程版本的队列服务和 Redis.

image.png

从官方的架构示意图可以看到,常驻内存的和每个工作进程持有的分别是什么部分。开发者需要注意的地方并不多,而且官方提供了 IoC 容器、ORM、配置管理、业务内核、路由和中间件等一系列的组件来处理这些需要注意的问题。

目前 Spiral 团队正在努力完善官方文档,在 spiral/docs 可以看到工作进展,中文文档也在持续翻译中。

接下来我会通过一个系列,介绍 Spiral 从安装、配置,开发,测试到上线部署的全过程。

下一篇文章会介绍 Spiral 框架的项目创建(安装)和配置。

php 混合开发框架,Spiral: 性能卓越的PHP/Golang混合开发框架相关推荐

  1. react性能优化方案_React灵敏且性能卓越的Spray + Akka解决方案,以“在Java和Node.js中发挥并发性和性能”...

    react性能优化方案 在我以前的文章中,我研究了一个虚拟的交易引擎,并将基于Java的阻止解决方案与基于Node.js的非阻止解决方案进行了比较. 在文章的结尾,我写道: 我怀疑随着Node.js的 ...

  2. 反应灵敏且性能卓越的Spray + Akka解决方案,以“在Java和Node.js中发挥并发性和性能”...

    在我以前的文章中,我研究了一个虚拟的交易引擎,并将基于Java的阻止解决方案与基于Node.js的非阻止解决方案进行了比较. 在文章的结尾,我写道: 我怀疑在Node.js近期取得成功之后,越来越多的 ...

  3. 智芯传感推出性能卓越的多量程硅微加速传感器ZXA

    2021年版的中国<产业基础创新发展目录>,是由国家产业基础专家委员会组织了千余位由院士.行业协会会员.高校和科研院所及重点企业科研人员参与专题研讨会,编制而成,是为了引导.鼓励政府.企业 ...

  4. 技术实力加速企业上云,联想混合云获评专有云优秀案例入选混合云全景图四大方向

    7月25-26日,由中国信息通信研究院.中国通信标准化协会联合主办的第十届可信云大会在京顺利召开.大会重磅发布了云计算白皮书(2023年).<混合云产业全景图(2023)>.中国算力服务研 ...

  5. 你的企业混合云了吗?来看看评估混合云解决方案时要注意的6个原则!

    作者| Matt Kimball 翻译 | 天道酬勤,编辑 | Carol 出品| CSDN云计算(ID:CSDNcloud) 混合云如今很流行.几乎每个IT公司都声称已部署了解决方案,但实际上实现的 ...

  6. 《混合云计算》——第2章 混合云的连续统2.1 解释混合云

    本节书摘来自异步社区<混合云计算>一书中的第2章,第2.1节,作者: [美]Judith Hurwitz , Marcia Kaufman , Dr. Fern Halper , Dani ...

  7. 公有云 私有云 混合云_您需要了解的有关混合云的知识

    公有云 私有云 混合云 在过去十年中出现的众多技术中,云计算以其从利基技术到全球主导地位的快速发展而著称. 云计算本身就造成了很多混乱,争论和争论,而混合了几种类型的云计算的"混合" ...

  8. matlab与vc混合编程指导书.doc,vc与matlab混合编程—基于com.doc

    vc与matlab混合编程-基于com.doc VC与MATLAB混合编程基于COM2010年03月21日星期日1118注意旨在提供一份VC调用MATLAB的快速试验参考和一些实际经验,不保证所有内容 ...

  9. 阿里云混合云精彩亮相中国信通院2021混合云大会

    随着"十四五"规划明确提出"以混合云为重点培育行业解决方案,系统集成,运维管理等云服务行业",混合云已成为产业内众多服务商和用户关注的重点.2021年12月23 ...

最新文章

  1. python调用打印机_Python调用打印机参考例子
  2. 山景智能创始人黄勇:银行要从数据智能转向业务智能,今天的金融服务难以支撑未来 | MEET2021...
  3. (转)Python开发规范
  4. c语言在线编译器_C语言和汇编语言是什么?他们之间可以有怎样的合作?为你解析...
  5. symantec antivirus 10.0服务器通讯问题
  6. 分享一下:推荐一个网站,练习CSS3
  7. C++语言实现-邻接矩阵
  8. 要成为物联网的paas平台,需要哪些条件做为支撑?
  9. 深度学习训练和推理有何不同?
  10. mysql root用户可以同时几个人连接_重学MySQL系列(四):10分钟快速掌握MySQL用户与权限管理
  11. const char * char * const
  12. java sap_SAP系统安装之JAVA
  13. svm python 多分类_机器学习之SVM多分类
  14. python爬虫淘宝评论_Python爬虫,抓取淘宝商品评论内容
  15. WPF实现选项卡效果(1)——使用AvalonDock
  16. adb 切换默认桌面_android tv 模拟器默认桌面修改 Alternate Launcher开机自动启动app...
  17. 总结:python paramiko winrm
  18. 如何为文件夹添加图标
  19. 天龙八部 - 其它 - 手工选择
  20. 小程序地图,回到当前所在位置

热门文章

  1. Excel 2007从入门到精通视频教程
  2. ∑ n!(1! 2!)用c语言怎么编,数控车床编程教程,图文实例详解!
  3. 教你制作自己的电脑主题包
  4. 程序员健康:编程之余保护眼睛
  5. 一键刷机三星I9220
  6. VS2013配置VTK7.1.1
  7. PHP intval 与 floatval
  8. [含论文+源码等]ssm框架外卖订餐系统
  9. Python实战:200行代码绘制个人足迹地图!
  10. linux 基线加固/等保整改