imi v1.0.28 发布,立春!春回大地,万物复苏!
imi 是基于 PHP Swoole 的高性能协程应用开发框架,它支持 HttpApi、WebSocket、TCP、UDP 服务的开发。
在 Swoole 的加持下,相比 php-fpm 请求响应能力,I/O密集型场景处理能力,有着本质上的提升。
imi 框架拥有丰富的功能组件,可以广泛应用于互联网、移动通信、企业软件、云计算、网络游戏、物联网(IOT)、车联网、智能家居等领域。可以使企业 IT 研发团队的效率大大提升,更加专注于开发创新产品。
首创毫秒级的注解及代码热更新重启,让你在开发时只管一把梭,体验与 fpm 下开发并无二致,保存就刷新,立马看到效果。
与其他专注微服务领域的 Swoole 框架不同,imi 专注单体应用开发。原因很简单:大部分公司都不需要上微服务,单体应用足矣。
码云:https://gitee.com/yurunsoft/IMI
Github:https://github.com/Yurunsoft/imi
imi 框架第一个版本 v0.0.1 首发于 2018 年 6 月 21 日
国际惯例
今年这个年过得真的是最特别的,整天惶惶不可终日,害怕得病……
于是,在放假期间宇润也没闲着,依然在撸项目,维护 imi 框架。
放假期间,我做了一个基于 Swoole + imi 框架的新型冠状病毒肺炎疫情实时动态爬虫抓取项目,可查看各省市趋势图。前后端代码已在码云全部开源!
项目地址:https://gitee.com/yurunsoft/nCov-Crawler
演示地址:https://test.yurunsoft.com/ncov/
今天,是立春。春回大地,万物复苏!疫情终将过去,春天必会到来。
免费视频教程
【宇润】基于 PHP + Swoole 的 imi 框架新手入门课程 | 每周五更新 | 从秃头到满头秀发,让你有更多时间上班划水,脱单不再是梦
戳我免费看从秃头到满头秀发的 imi 框架教程:https://www.bilibili.com/video/av78158909
更新日志
增强
-
新增 Imi::getNamespacePaths() 获取所有命名空间路径的可能性
-
新增 File::absolute(),相比 realpath() 函数,在文件不存在时也可以有效
-
支持加载项目命名空间映射为多个目录情况下的 .env 配置文件
-
跨域中间件 OptionsMiddleware 支持多个 allowOrigin
优化
- 优化命名空间指向多个目录的场景
修复
-
修复随 Manager 启动进程别名问题
-
修复协程上下文的响应代理类问题
开始使用
创建 Http Server 项目:composer create-project imiphp/project-http
创建 WebSocket Server 项目:composer create-project imiphp/project-websocket
创建 TCP Server 项目:composer create-project imiphp/project-tcp
创建 UDP Server 项目:composer create-project imiphp/project-udp
完全开发手册:https://doc.imiphp.com/
imi 组件库:https://github.com/imiphp
imi 官方指定 Http 客户端(替代 Curl):https://github.com/yurunsoft/yurunhttp
欢迎各路新人和大佬的加入贡献代码的行列中,修正错别字、错误拼写、提交代码,我们全都欢迎~
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
nginx worker进程循环
worker进程启动后,其首先会初始化自身运行所需要的环境,然后会进入一个循环,在该循环中不断检查是否有需要执行的事件,然后处理事件。在这个过程中,worker进程也是需要与master进程交互的,更有甚者,worker进程作为一个子进程,也是可以接收命令行指令(比如kill等)以进行相应逻辑的处理的。那么worker进程是如何与master或者命令行指令进行交互的呢?本文首先会对worker进程与master进程交互方式,以及worker进程如何处理命令行指令的流程进行讲解,然后会从源码上对worker进程交互的整个工作流程进行介绍。 1. worker与master进程交互方式 这里首先需要说明的是,无论是master还是外部命令的方式,nginx都是通过标志位的方式来处理相应的指令的,也即在接收到一个指令(无论是master还是外部命令)的时候,worker会在其回调方法中设置与该指令相对应的标志位,然后在worker进程在其自身的循环中处理完事件之后会依次检查这些标志位是否为真,是则根据该标志位的作用执行相应的逻辑。 对于worker进程与master进程的交互,其是通过soc...
- 下一篇
Mysql锁总结
今天我们来介绍一下Mysql中不同类型的锁 数据库锁设计的初衷是处理并发问题。作为多用户共享的资源,当出现并发访问的时候,数据库需要合理地控制资源的访问规则。而锁就是用来 实现这些访问规则的重要数据结构 根据加锁的范围,MySQL 里面的锁大致可以分成全局锁、表级锁和行锁三类 全局锁 全局锁就是对整个数据库实例加锁。MySQL 提供了一个加全局读锁的方法, 命令是 Flush tables with read lock (FTWRL)。当你需要让整个库处于只读状态的时候,可以使用这个命令,之后其他线程的以下语句会被阻塞:数据更新语句(数据的增删改)、数据定义语句(包括建表、修改表结构等)和更新类事务的提交语句 全局锁的典型使用场景是,做全库逻辑备份 但是让整库都只读,听上去就很危险: 如果你在主库上备份,那么在备份期间都不能执行更新,业务基本上就得停摆; 如果你在从库上备份,那么备份期间从库不能执行主库同步过来的 binlog,会导致主从 延迟 官方自带的逻辑备份工具是 mysqldump。当 mysqldump 使用参数–single-transaction 的时候,导数据之前就会启...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8编译安装MySQL8.0.19
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7