本文是 imi 框架(https://github.com/imiphp/imi)对接支持 RoadRunner 的经验心得分享。
RoadRunner 是一款开源(MIT 协议)高性能 PHP 应用服务器、负载均衡器和进程管理器。
它支持作为服务运行,能够在每个项目的基础上扩展功能。
RoadRunner 包括 PSR-7/PSR-17 兼容的 HTTP 和 HTTP/2 服务器,可用于取代传统的 Nginx+FPM 设置,具有更高的性能和灵活性。
本文是 imi 框架(https://github.com/imiphp/imi)对接支持 RoadRunner 的经验心得分享。
RoadRunner 是一款开源(MIT 协议)高性能 PHP 应用服务器、负载均衡器和进程管理器。
它支持作为服务运行,能够在每个项目的基础上扩展功能。
RoadRunner 包括 PSR-7/PSR-17 兼容的 HTTP 和 HTTP/2 服务器,可用于取代传统的 Nginx+FPM 设置,具有更高的性能和灵活性。
今天遇到个陈年bug,之前一直没发现。前端反应收到了两次,重复的 Set-Cookie 头。
百思不得其解,排查半天终于确定是反复调用 session_start() 函数导致的。
session_start() 函数每调用一次,就会输出一次 Set-Cookie 头。
解决办法:...
PHP 8.0 是PHP语言的一个重要更新。
它包含许多新特性和优化,包括命名参数、联合类型、属性、构造函数属性提升、匹配表达式、null安全运算符、JIT,以及类型系统、错误处理和一致性的改进。
那么 PHP 8 有哪些新特性呢?
如果说数组是 PHP 的精髓,数组玩得不6的,根本不能算是会用PHP。那协程对于 Swoole 也是同理,不理解协程去用 Swoole,那就是在瞎用。
首先,Swoole 只能运行在命令行(Cli)模式下,所以我们开发调试都是使用命令行,而不是 php-fpm/apache 等。
在 Swoole 中,我们可以使用`\Swoole\Coroutine::create()`创建协程,或者你也可以使用简写`go()`。
PHP 的精髓就是数组的运用,数组玩得好可以用于所有数据结构。有个叫SPL的好东西,里面有很多数据结构可供我们使用,并且性能也比我们使用数组实现的要好很多。
今天来看看SplFixedArray,顾名思义,固定大小的数组。实例化时,指定数组大小,使用过程中不可对数组进行扩容、缩小。
所以如果你有对数组进行动态操作时,可能就不太适合用它,而且SplFixedArray的索引只能是数字,不可以作为键值数组使用。
下面是测试Array和SplFixedArray的 100W 次读写性能以及内存占用
今天在尝试把SplPriorityQueue对象序列化并反序列化后,遇到了问题。反序列化后在队列里的数据全没了,这让我很伤心。
今天遇到了,在 PHP 里类循环引用时,会导致 __destruct() 不触发的问题,附解决方法两个。
今天心血来潮,写到一个功能,可能会用到trait的static,写了代码测试了下……代码就不贴了,没错,无论是self还是static,都无法获取当前trait名。
但是这不是重点,重点是下面的。我想要在trait中操作static属性,由于不清楚到底会指向谁,所以写了代码进行测试……
让 Guzzle 支持 Swoole 协程,这个项目目的就是这么简单明了!
本项目不包含 Guzzle 功能,请自行在项目中引用 Guzzle 6.x,理论上可以支持升级 Guzzle 版本而无需更新 Guzzle-Swoole!