Skip to content

Latest commit

 

History

History
82 lines (56 loc) · 3.36 KB

D-how-to-contribute.markdown

File metadata and controls

82 lines (56 loc) · 3.36 KB

附录D 怎样为PHP贡献

既然你在阅读本书,那说明你也是对PHP很感兴趣的读者,在窥探到PHP内部实现之后 或许也蠢蠢欲动想要共享自己的力量。下面进行一些简单的说明。

很多人以为为PHP做贡献(contribute)只是简单的为PHP提交补丁,其实在广义上来说, 为PHP做贡献有很多种方式,这包含但不限于:

  • 宣传和参与PHP的讨论
  • 发现和报告或者提到补丁修复PHP的bug
  • 编写和翻译PHP手册
  • 编写PHP相关的书籍
  • 写PHP相关技术的博客
  • 为PHP增加新功能
  • 编写和贡献PHP扩展或者库

所以很可能大部分的读者目前其实已经是在为PHP做贡献了。只不过如果你是本书的读者, 可能更想为PHP-Runtime做贡献,比如:修复PHP代码的bug,提交功能改进。

我们可能根据自己的特长来为PHP做贡献,如果你英语好,那么翻译手册将会是你的强项。 如果你的C比较好,那么可以为PHP修改bug,如果你对PHP语言的语法或者功能有改进想法, 你可以提交改进方法,当然如果你能将该功能实现出来那更好不过了。

下面介绍一下,为PHP做贡献的方方面面。

沟通方式

邮件组

在很多开源项目中,邮件组都是作为最主要的沟通方式,邮件组虽然古老,但是却很有效, 每个人都会有一个邮箱,可以快捷的使用邮件客户端来沟通,目前的邮件客户端都很好用, 可以根据主题进行汇总。Gmail和QQmail就做的不错。

PHP官方的邮件组都列在这里了: http://php.net/mailing-lists.php

IRC

报告和修复Bug

PHP的bug可以在http://bugs.php.net上进行。在这里你可以提交和php相关的各种bug, 虽然是bug管理,其实这里还可以提出你的需求,比如如果你觉得PHP缺失某个功能, 你可以在这里提交。在提交的同时,如果你能提供补丁那再好不过了。没有补丁也没有关系, 如果这的确是个bug,根据紧急和难易程度可能会有同学帮你修复,如果是一个功能改进, 同时对PHP的改动比较大,那么这个需要提交到php-internals邮件组进行讨论, 如果已经有实现了,讨论充分后就可以进行投票了。如果通过投票,那么恭喜你。

NOTICE 这里的bug通指bug和feature,也就是非预期行为以及功能需求。

原则

这里的的Bug指的是PHP语言本身的bug,而不是应用程序的bug,比如某个函数的行为和预期不一致, 或者运行某段程序后PHP崩溃了,或者性能低下,你都可以提交报告。

这有一些基本的原则:

如果是bug:

  1. 你需要确认这的确是PHP的bug,而不是应用程序的bug
  2. 确认你使用正确,也就是是否和PHP手册文档使用一致
  3. 尽量用最少的代码来重现问题。这将有利于问题的追查

修复

测试

在你发现了一个bug或者实现一个功能时,你需要为你的bug或者功能编写测试, 测试用例的编写可以参考附录E phpt测试文件说明

测试时可以使用make test TESTS=/path/to/your/bugXXXX.phpt 来进行测试。 通常如果是个bug,那么会将测试的名称命名为bugXXXX.phpt

贡献功能

RFC

贡献PECL扩展

贡献Pear库

Composer

改进和增加文档

代码权限申请

关于Credit