重磅丨科技教育公司“好未来”正式对外开源高性能PHP框架Fend
2020/8/15 5:03:45
本文主要是介绍重磅丨科技教育公司“好未来”正式对外开源高性能PHP框架Fend,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
好未来是一家以智慧教育和开放平台为主体,以素质教育和课外辅导为载体,在全球范围内服务公办教育,助力民办教育,探索未来教育新模式的科技教育公司。
截至目前,好未来集团已围绕教育场景需求,累计研发包括图像、语音、数据挖掘、自然语言处理等8大类型、100多项AI能力,打造10余项教育场景应用AI解决方案。
在技术不断提升的道路上,好未来技术线提出坚持“大中台、小前台”的技术战略,统一基础服务设施建设,推进公司技术组件落地,增强企业技术人才内生,不断提升企业的技术实力及技术影响力。
除此之外,好未来内部坚持开源共享,通过“开放、共享、合力开发”的模式,推动开源文化氛围的形成与技术组织变革,为中台建设提供了另外一种抓手。同时通过开源文化的建设,促进整个教育生态技术共享,提升教育科技实力,更好的为“科技与爱让教育更美好”的愿景奠定基础。
近期由“好未来”技术团队开源的高性能PHP框架Fend PHP正式上线!该框架单机QPS可达到4000个,好未来内部目前超过30个团队项目在使用该PHP框架!
前言
PHP是一款简单方便的语言,而行业开源框架为了后续灵活
而变得过于繁重
Fend框架是一款很有历史的框架、初代发布后一直在好未来坊间传播使用、衍生出大量分支版本
这是一款很有意思的框架、普通的框架内隐藏着大型互联网经验的精华、也同时存在大量历史痕迹
2019年7月 我们对Fend进行整理、封装、推广、目前在好未来内部有大量的用户在使用、维护
2020年7月 开源、以此共建交流
我们崇尚 脚踏实地、仰望星空
精神 欢迎小伙伴一起参与开源共建
设计方向
Fend 框架是一款以企业快速实现业务为主要目标的框架,但与复杂的行业流行框架追求不同:
简单实用
:追求快速上手,扩展功能一步到位、大量降低功能的复杂度、框架更注重简单实用实现单层内核
:追求一个函数能实现的功能绝不继承封装,不追求框架自身功能的继承可复用内聚归类
:高度集中归类功能,降低底层复杂度,减少底层组件关注度、更多时间在业务持续积累
:持续积累大型互联网线上运营经验,持续探索企业实用技巧,深度来自于积累而非AOP带来的灵活性内核设计
:高内聚简单内核,放开业务自封装空间,留下更多空间给业务开源心态
:开放公开,接受任何符合价值观源码奉献、但有严格代码审核
功能简介
- Swoole/FPM 双引擎平滑切换(协程版本还在整理稍晚放出)
- 统一使用 Composer Autoload PSR4
- 请求Debug 模式,请求网址wxdebug=1可查看debug模式查看异常分析性能
- 协程模式下对变量域做了更好的封装,降低协程使用难度
- 支持压测使用灰度影子库
- 高速map映射路由 + FastRouter正则路由
- 符合大数据挖掘设计的Trace日志,方便ELK分析、ClickHouse、HBase、实时预警
- throw new Exception方式处理业务异常、能够快速发现异常
性能压测
目前是在KVM虚拟机上压测、后续会找一台阿里云进行压测
FPM性能
服务器配置
- CPU 4 核 Xeon 2.2
- 内存 12G
- KVM + CentOS 7.6
- FPM 开启进程数 500
QPS 5331 (分析:fpm空跑hello 1w、引入composer autoload 后 7000、开启日志trace 6000、框架内echo 5000)
Swoole 1.10.x 性能
服务器配置
- CPU 4 核 Xeon 2.2
- 内存 12G
- KVM + CentOS 7.6
- FPM 开启进程数 500
QPS 24000、协程版本稍晚放出
发行版本介绍
Fend有两个版本
- Tag版本为 1.2.x FPM/Swoole 1.10.x 平滑切换版本
- Tag版本为 1.3.x FPM/Swoole 4.5.x Coroutine 协程 平滑切换版本
此版本还在调整
以下为1.2.x版本安装
FPM Engine Start
master is 1.2.x version
composer create-project fend/fend-skeleton:~1.2.0 project_name 复制代码
Ref nginx.conf to configure Nginx and http://127.0.0.1/ on browser
Swoole Engine Start
composer create-project fend/fend-skeleton:~1.2.0 project_name # swoole start ( /bin/fend depend on composer require symfony/console ) php /bin/fend Swoole -c app/Config/Swoole.php start php /bin/start.php -c app/Config/Swoole.php start 复制代码
browser http://127.0.0.1:9572/
1.3.0协程版本 安装
composer create-project fend/fend-skeleton:~1.3.0 复制代码
软件作者贡献列表
(其他贡献者、请详见文档鸣谢)
合作伙伴
好未来教育集团90%在线业务在使用本框架
xiaohouai.png
共建规则
欢迎挑战组件功能、允许同类功能同时发布竞争、以 性能好 + 实用及实现简单 + 功能实用 评判
联系我们
issue: github.com/tal-tech/fe…
加群请加微信:
也许你还想看
DStack--基于flutter的混合开发框架
WebRTC源码分析——视频流水线建立(上)
"考试"背后的科学:教育测量中的理论与模型(IRT篇)
这篇关于重磅丨科技教育公司“好未来”正式对外开源高性能PHP框架Fend的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-19php8的协程和hyperf的协程有什么区别?-icode9专业技术文章分享
- 2024-12-19php8 的fiber是什么?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-11-29使用PHP 将ETH账户的资产汇集到一个账户
- 2024-11-23怎么实现安卓+php 热更新方案?-icode9专业技术文章分享
- 2024-11-22PHP 中怎么实现判断多个值是否为空、null 或者为 false?-icode9专业技术文章分享
- 2024-11-11开源 PHP 商城项目 CRMEB 二次开发和部署教程
- 2024-11-09怎么使用php在kaufland平台刊登商品?-icode9专业技术文章分享
- 2024-11-05PHP的抽象类和接口是什么,有什么区别-icode9专业技术文章分享