Swoole4 协程与 PHP 的 Yield/Generator 协程有什么区别

在一些框架中使用了PHPYield/Generator来实现半自动化的协程。实际使用中,开发者需要在涉及协程逻辑的函数调用前增加yield关键字。这带来了额外的学习成本和编程心智负担,非常容易犯错。Yield/Generator代码风格与传统的同步风格代码存在冲突。无法复用已有代码。

Swoole4协程是全自动化的协程,开发者无需添加任何关键字,底层自动实现协程的切换和调度。Swoole4协程风格与传统的同步风格代码是一致的,因此可以复用已有代码。

4.1.0版本中,底层增加了php_stream兼容层,可一键地将redismysqlipdo和其他tcp socket stream代码协程化。