更新内容本周的更新主要是在Parallel特性上增加了协程控制功能,Parallel特性也是Parallel和Concurrent特性的结合。同时,我们修复了部分组件的Fixedbug,使Hyperf1.1.*系列版本更加健壮。1.1.3版本发布,推荐使用1.1用户更新。直接访问官网hyperf.io或文档hyperf.wiki查看。添加#745为gen:model命令添加with-comments选项,标记是否生成字段注释;#747向AMQP消费者添加AfterConsume、BeforeConsume和FailToConsume事件;#762为Parallel特性增加协程控制功能;更改#767将AbstractProcess的运行属性重命名为监听;修复#741修复执行db:seed命令时丢失文件名的问题;#748修复SymfonyNormalizer不处理数组类型数据的问题;#769修复result和error属性为null时,会抛出无效请求问题;并行协程控制在使用Parallel时可以大大提高多个请求的处理速度,但是如果一个服务是批量处理的,而且处理协程的量也很大的话,很容易压垮同行。那么当我们既要批量请求又要同时控制最大协程数达到保护peer的目的时,那么可以传入你想要同时运行的最大协程数作为第一个参数Parallel构造函数,如下图:add(function(){sleep(1);return1;});$result=$parallel->wait();关于HyperfHyperf是基于Swoole4.4+实现的高性能、高灵活性的PHP协程框架,内置协程服务器和大量常用组件,性能相比基于PHP-FPM的传统框架有了质的提升,同时提供超高性能的同时,还保持着极其灵活的Scalability,标准组件基于PSR标准实现,基于强大的依赖注入设计,确保大部分组件或类可替换、可重用。框架组件库除了常见的协程版MySQL客户端和Redis客户端,还为你准备了协程版EloquentORM、WebSocket服务端和客户端、JSONRPC服务端和客户端、GRPC服务端和客户端Client、Zipkin(OpenTracing)客户端、GuzzleHTTP客户端、Elasticsearch客户端、Consul客户端、ETCD客户端、AMQP组件、Apollo配置中心、阿里云ACM应用配置管理、ETCD配置中心、基于令牌桶算法的限流器、通用连接池、熔断器、Swagger等组件文档生成、SwooleTracker、Blade和Smarty视图引擎、Snowflake全局ID生成器等,省去自己实现对应协程版本的麻烦。Hyperf还提供了基于PSR-11的依赖注入容器、注解、AOP面向方面编程、基于PSR-15的中间件、自定义流程、基于PSR-14的事件管理器、Redis/RabbitMQ消息队列和自动模型缓存、PSR基于-16的缓存、Crontab二级定时任务、i18n国际化、Validation表达式校验等非常便捷的功能,满足丰富的技术和业务场景,开箱即用。框架的初衷虽然基于PHP语言开发的框架现在已经是百花齐放的时代,但是仍然没有看到一个优雅设计与超高性能并存的完美框架,也没有看到一个框架真正为PHP微服务铺路,这是Hyperf和团队成员的初衷,我们会为此继续投入和努力,欢迎大家加入我们一起参与开源建设。设计理念Hyperspeed+Flexibility=Hyperf,从名字上我们就把超高速和灵活性视为Hyperf的基因。针对超高速,我们基于Swoole协程,在框架设计上做了很多优化,保证了超高性能的输出。为了灵活性,我们基于Hyperf强大的依赖注入组件。组件全部基于PSR标准契约和Hyperf定义的契约,使得框架中的大部分组件或类都是可替换的。基于以上特点,Hyperf将具有丰富的可能性,如实现单体Web服务、API服务、网关服务、分布式中间件、微服务架构、游戏服务器、物联网(IOT)等。完备的文档我们在文档的建设上投入了大量的时间,解决了文档缺失带来的各种问题。文档还提供了大量示例,对新手同样友好。Hyperf官方开发文档可用于生产。我们对组件进行了大量的单元测试,以保证逻辑的正确性。目前,有1125个单元测试,共有3381个断言条件。同时,保持高质量的文档。Hyperf正式对外开放(2019年6月5月20日之前),我们在正式对外开放项目之前,已经通过了严酷生产环境的考验。现在很多大型互联网公司已经将Hyperf部署到他们的生产环境中并稳定运行。官网和通讯Github??????点个星来支持我们的Gitee码云?????点星支持我们Hyperf官网Hyperf文档QQ群:862099724
