msgbartop
PHP语言, PHP扩展, Zend引擎相关的研究,技术,新闻分享 – 左手代码 右手诗
msgbarbottom

30 Apr 12 如何为PHP贡献代码

PHP在之前把源代码迁移到了git下管理, 同时也在github(https://github.com/php/php-src)上做了镜像, 这样一来, 就方便了更多的开发者为PHP来贡献代码.

今天写这篇文章, 就是为了给在国内的同学们, 愿意为PHP开源社区做贡献的同学们, 做个示例, 如何为PHP来贡献你的智慧.

现在, 假设你要为贡献一个新特性, 那么你除了要做下面的这些步骤以外, 还需要在wiki.php.net上提交一个RFC, 待会我会介绍这个, 现在让我们先简单点, 假设你只是要为PHP修复一个bug(一般来说, 大家可以在这里发现PHP已经报告的bug: PHP Bugs). 现在假设你已经想好了要怎么修复这个Bug.

1. 首先, 你需要有一个github的账号, 没有的话, 来这里注册: 注册github.

2. Fork PHP的源代码, 在PHP的Github页面上的右上角有一个fork按钮, 点它

3. Fork以后, 你就有了一份属于你自己的PHP源代码仓库, 现在你就可以在这个仓库下, 修改PHP的源代码来为它修复Bug了.

具体开发没什么好说的, 不过如果对于Git的使用有问题的话, 可以参考Git使用手册, 比如这个: ProGit

我这里为大家提供一个简单的说明, 如果在Github上开始开发, 在你自己的PHP代码仓库的页面上, 会有一个说明, 比如在我的PHP仓库页面上https://github.com/laruence/php-src:

ssh  git@github.com:laruence/php-src.git

然后, 我就在本地开发环境上, 执行:

$git clone git@github.com:laruence/php-src.git

然后, 你就得到了一个php-src目录, 进去开发吧, :)

4. 等你修复完成以后, 你提交到你属于你自己的这个PHP仓库中, 然后, 在你的PHP源代码仓库的Github页面的右上角, 会有一个pull request按钮. 点它.

提交的时候, 请注意你的提交说明的格式, 首先第一行应该是个简短的说明(最多79个字符), 说明你做了什么修改. 如果一句话说不完, 就插入一个空行, 然后输入大段的说明(参看New Commit Message Format) :

<max 79 characters short description>\n
\n
<long description, 79 chars per line>
\n

如果你是修复了一个列在bugs.php.net上的bug, 那么你的简短说明应该类似如下格式:

Fixed Bug #bug号 (Bug的描述)

5. 然后, 填写相关的信息, Github就会给PHP的pull request邮件组发送一份包含着你的更新的Pull Request邮件(大家不用担心你的英文, 只要你能说出来, 我们就能看懂, 当然, 如果你实在不愿意写英文, 也没关系, 写中文吧, 我看到了会处理, 我处理不了的, 我也会为大家翻译).

6. 最后, 如果PHP的Committers们认为你的修复正确(有一些为PHP贡献代码要注意的选项, 我留在下面). 就会Merge你的Pull Request到PHP的源代码中.

现在, 假设你要提交的是, 一个更新(添加新函数, 添加新语法), 那么在你提交了Pull Request的同时, 你还需要往internals@lists.php.net邮件组发送一个邮件, 来说明你为什么要提交这个更新, 让在这个邮件组的人们一起来讨论, 帮助你完善你的想法.

附录:

为PHP贡献源代码有几点要注意的(常见的问题):
1. 只写C89兼容的代码, 比如, 不要用单行注释(//), 变量的定义一定要在所有语句之前(block的开始)..
2. 变量命名, 遵循PHP已有的规范, 不要使用驼峰命名.
3. 对于一些非常小的更新, 比如代码中有拼写错误, 还是鼓励大家到bugs.php.net上提交Patch, 毕竟Merge Pull Request有的时候会比较麻烦.

更多的PHP代码规范, 参看这里: Coding Standards

更多关于如何提交Patch, 参看这里: Submitting patch


分享到:



Random Posts:

20 Responses to “如何为PHP贡献代码”

  1. axot |

    刚发的URL好像被过滤掉了。
    github PR #2180
    谢谢哈

  2. axot |

    提交了一个patch能不能帮忙看下,不知道性能有多大影响。
    另外php 5.6也想要merge一下。谢谢

  3. GitHub for Windows的安装 | uedpub |

    [...] 如何为PHP贡献代码 [...]

  4. 伍德龙 |

    向鸟哥致敬

  5. 青岛珲莎舍 |

    很不错的博客,学习了!

  6. Git的基本概念和用法 – 你知道,猪不知道哦 . |

    [...] 如何为PHP贡献代码 转载请注明:你知道,猪不知道哦 . » Git的基本概念和用法 分享到:更多 继续浏览有关Git的文章 [...]

  7. Windows平台上的Git客户端 – 你知道,猪不知道哦 . |

    [...] 如何为PHP贡献代码 [...]

  8. Windows平台上的Git客户端 – 你知道,猪不知道哦 . |

    [...] 如何为PHP贡献代码 转载请注明:你知道,猪不知道哦 . » Windows平台上的Git客户端 分享到:更多 继续浏览有关Git的文章 [...]

  9. GitHub简介 – 你知道,猪不知道哦 . |

    [...] 如何为PHP贡献代码 [...]

  10. GitHub简介 – 你知道,猪不知道哦 . |

    [...] 如何为PHP贡献代码 转载请注明:你知道,猪不知道哦 . » GitHub简介 分享到:更多 继续浏览有关的文章 [...]

  11. 如何为PHP贡献代码树林/咖啡 成都专业php网站制作 | 树林/咖啡 成都专业php网站制作 |

    [...] 风雪之隅 » PHP应用 Posted in: php / Tagged: 如何为PHP贡献代码 [...]

  12. 如何为 PHP 贡献代码 - 博客 - 伯乐在线 |

    [...] 发布时间:2012-05-1 16:08     分类: IT技术, 程序员 都等你发言 :) 分享到: (function(){ var _w = 55 , _h = 16; var param = { url:location.href, type:'3', count:'1', appkey:'2606191112', title:'', pic:'', ralateUid:'1670481425', language:'zh_cn', rnd:new Date().valueOf() } var temp = []; for( var p in param ){ temp.push(p + '=' + encodeURIComponent( param[p] || '' ) ) } document.write('') })() 来源:laruence [...]

  13. 风起 |

    有没有可能, php增加多这个语法的支持, if(4 < $a < 6) {…} 这样的

  14. Sky |

    希望博主能建立一个php高级开发论坛,讨论php源码,gtk,apache,c,linux,数据结构算法,数据库等知识。中国需要博主这样的人才去带领phper发展。

    还有我想说,目前博主写的yaf框架,确实应该设立一个论坛去讨论,讨论此框架人多了,用的人慢慢也多。

  15. 银海网 |

    又学习了,马上去注册一个,自己保存了一些代码,发布去试试

  16. 编码者说 » Blog Archive » 如何为PHP贡献代码 - 为web开发者而建 |

    [...] 本文地址: http://www.laruence.com/2012/04/30/2594.html [...]

  17. ShineLee |

    你好,很喜欢你的博客。有个问题,就是PHP的中文帮助手册->索引列表项目中的中文一直是乱码,你是PHP开发组的成员,应该能把这个意见反馈至官方,谢谢!

  18. 老蜗牛 |

    一直希望贡献代码

    博主能换个链接么

    PHPCMS中国 http://phpcms.org.cn

    QQ:860275582

  19. Magento中文 |

    用git的越来越多了,不错

  20. Azhun |

    能感受到这是让人振奋的事情

Leave a Reply

*