PHP 18

在 PHP 中模拟 Go 语言的 defer 语句

PHP
看到一个很有意思的项目 https://github.com/php-defer/php-defer ,这个项目只用了10行左右的代码就实现了Go语言中的defer,看来灵活运用数据结构还是很重要的。项目源码如下: <?php function defer(?SplStack …...
Read more →

通过网关为 PHP-FPM 插上 WebSocket 的翅膀

PHP
众所周知,运行在PHP-FPM模式下的PHP代码并非常驻内存,而WebSocket实时通信又需要常驻内存,可以说PHP-FPM模式跟 WebSocket就走不到一块去。 虽然可以直接使用AMPHP、REACTPHP、Swoole等众多PHP-CLI的库和扩展来让PHP处理WebSocket业务,但这 …...
Read more →

PHP 的 opcode

PHP
opcode跟PHP,类似于bytecode跟Java的关系,相当于机器码和编译型语言的关系。 PHP是一门解释型语言,它的执行单元就是opcode,Zend Engine就是执行opcode的地方,Zend Engine也就是常说的VM。JVM比较出名,它就是针对Java设计的VM,这样说应该理解 …...
Read more →

由 PHP Fiber 引发的思考

PHP
由于水平有限,可能有些术语并不是那么准确。 PHP 8.1的新特性Fiber,可能让很多PHPer误解了,以为Fiber的出现可以解决PHP生态的很多问题,如官方多线程方案的缺失、PHP-FPM多进程阻塞模型的优化。但实际上Fiber目前解决的问题并不多,只是在底层引入了用户栈空间切换的原语,并不能 …...
Read more →

PHP 通过 FFI 与 C 交互

PHP
一门语言写的代码跟另一门语言交互一直是我很感兴趣的事情,既想用着让自己舒服的语言,又想使用其它语言在特定领域中强大的生态。当然通过网络接口来交互是最简单的方式,但需要写很多额外的代码。FFI(Foreign Function Interface)是用于与其它语言交互的接口,可以将其它语言的接口内嵌到 …...
Read more →