PHP核心开发者Nikita的首次提交,就实现了个寂寞啊

Nikita Popov 曾是 PHP 社区中备受尊敬的核心开发者之一。几年间,他深度参与了性能优化工作,一边不断实现新功能,一边修复历史遗留的大量错误,是把 PHP 从"老旧脚本语言"推动为"现代编程语言"的关键人物之一。

Nikita 可谓年轻有为,据说还在高中时期就开始参与 PHP 开发,首次贡献是在 PHP 5.5 版本中。

我们不禁好奇,这位才华横溢的开发者第一次会向 PHP 代码库提交哪些内容?下面,我们就来看看 Nikita 的首秀吧,了解他是如何开启这段非凡的开源旅程的。

以邮箱为关键词在提交日志中进行搜索,可以发现他首次提交的时间是 2012 年 5 月 20 日。不知道当时高中毕没毕业。

这次提交主要新增了 2 个文件 zend_generators.czend_generators.h,并对 Makefileconfigure 等构建脚本文件做了相应的修改。从注释来看,Nikita 的首次提交只是添加了没有任何功能的、一个名为 Generator 的内置类 。文件 zend_generators.c 中的代码也验证了这一点。

c 复制代码
#include "zend.h"
#include "zend_API.h"
#include "zend_generators.h"

ZEND_API zend_class_entry *zend_ce_generator;

static const zend_function_entry generator_functions[] = {
       ZEND_FE_END
};

void zend_register_generator_ce(TSRMLS_D) /* {{{ */
{
       zend_class_entry ce;

       INIT_CLASS_ENTRY(ce, "Generator", generator_functions);
       zend_ce_generator = zend_register_internal_class(&ce TSRMLS_CC);
       zend_ce_generator->ce_flags |= ZEND_ACC_FINAL_CLASS;
}
/* }}} */

换句话说,Nikita 的首次提交,只是让我们可以在代码中写出 <?php new Generator(); ------ 仅此而已,new 出来的对象没有任何作用。

如果你对 PHP 扩展开发稍有了解,会发现这几行代码是模板化的"公文格式":定义一个类、注册类名、绑定方法,这套流程任谁来写都是这样。真正透露出一点"作者痕迹"的,只有两个地方:一个是类名 "Generator",另一个是 zend_ce_generator->ce_flags |= ZEND_ACC_FINAL_CLASS;,表明 Generator 这个类无法被继承。

尽管这次提交看起来非常朴素,甚至可以说简陋,却悄然拉开了一个重要特性的序幕------生成器(generators)。这项特性随着 yield 关键字在 PHP 5.5 中正式落地,大大丰富了语言的表达力。

正如所有伟大的旅程都始于第一步,Nikita 的这次"空提交"似乎也预示着他在 PHP 语言演进中的关键角色。

Nikita Popov 目前是 Red Hat 的高级软件工程师,主要从事 LLVM、Clang 和 Rust 编译器的开发工作。

相关推荐
冰橙子id3 小时前
centos7编译安装LNMP架构
mysql·nginx·架构·centos·php
永日456704 小时前
学习日记-day24-6.8
开发语言·学习·php
Clang's Blog4 小时前
一键搭建 WordPress + MySQL + phpMyAdmin 环境(支持 PHP 版本选择 & 自定义配置)
数据库·mysql·php·wordpr
flyair_China8 小时前
【云架构】
开发语言·php
有个傻瓜11 小时前
PHP语言核心技术全景解析
开发语言·kubernetes·php
rorg18 小时前
使用 Laravel 中的自定义存根简化工作
php·laravel
斯奕sky_small-BAD1 天前
C++ if语句完全指南:从基础到工程实践
java·开发语言·php
Nick同学1 天前
GatewayWorker 使用总结
后端·php
CRMEB定制开发1 天前
CRMEB 中 PHP 快递查询扩展实现:涵盖一号通、阿里云、腾讯云
阿里云·php·腾讯云·商城系统·商城源码
CRMEB定制开发1 天前
PHP 打印扩展开发:从易联云到小鹅通的多驱动集成实践
php·小程序源码·商城源码·微信商城·php商城源码