PHP开源贡献:如何开始参与贡献而不迷失方向

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

为什么开源不可怕,反而有益?

\n\n

您是否曾看着大型PHP项目的仓库,心想:“那里全是大师,我连看都不敢看”?这种感觉很熟悉。但事实是,开源贡献并非关于拥有20年经验的超级英雄。而是关于那些某一天决定“为什么不试试呢?”的普通开发者。

\n\n

让我们分析一下您为什么需要做这件事。首先,参与PHP贡献是提升技能的最佳方式。您将阅读他人代码,理解架构,并学会编写代码,使其在代码审查时不被退回。其次,这是您的作品集。雇主非常喜欢在GitHub上有星星的候选人。第三,知道您的代码被全球数千(甚至数百万)开发者使用,这种感觉很棒。

\n\n

但新手最大的恐惧是:“我会写出垃圾代码,然后被嘲笑”。剧透:不会的。在PHP开源社区中,帮助新手是常态。您会得到纠正,但会很礼貌。关键是开始行动。

\n\n

从何开始?选择项目

\n\n

不要立即尝试Symfony或Laravel。选择一个更简单的项目。理想的第一个项目是您自己使用的库或包。打开您的composer.json并查看依赖项。很可能有一些小型项目:Markdown解析器、日期处理库或简单的HTTP客户端。

\n\n

以下是选择项目的几个标准:

\n\n
    \n
  • 项目活跃度:最后一次提交不超过3个月。否则您可能白费力气。
  • \n
  • 存在标记为“good first issue”的issue:这是新手的金矿。许多PHP项目会特意标记简单任务。
  • \n
  • 清晰的README:如果文档说明了如何运行测试和设置环境,这是一个好迹象。
  • \n
\n\n

例如,访问GitHub并搜索带有good-first-issue标签的PHP开源项目。您会发现数百个等待英雄的任务。

\n\n

第一步:阅读CONTRIBUTING.md

\n\n

说真的,不要跳过这个文件。它通常包含所有信息:从提交命名规则到如何运行测试。如果您忽略CONTRIBUTING.md,您的工作可能仅仅因为格式不符而被拒绝。

\n\n

PHP项目中的典型要求:

\n\n
    \n
  • 代码必须符合PSR-12(代码风格标准)。
  • \n
  • 所有更改必须包含测试(PHPUnit, Pest)。
  • \n
  • 提交必须签名或至少具有清晰的描述。
  • \n
\n\n

寻找第一个任务:从issue到第一行代码

\n\n

假设您找到了一个任务。例如,在PHP JSON处理库项目中有一个issue:“添加对JSON_THROW_ON_ERROR选项的支持”。听起来很吓人?实际上很简单:只需添加一个标志,使函数抛出异常而不是返回null。

\n\n

以下是项目中可能出现的代码示例:

\n\n
<?php\n\n/**\n * 解析JSON字符串。\n *\n * @param string $json\n * @param bool $throwOnError\n * @return array|null\n */\nfunction parseJson(string $json, bool $throwOnError = false): ?array\n{\n    $data = json_decode($json, true);\n    \n    if (json_last_error() !== JSON_ERROR_NONE) {\n        if ($throwOnError) {\n            throw new \\RuntimeException('Invalid JSON: ' . json_last_error_msg());\n        }\n        return null;\n    }\n    \n    return $data;\n}\n
\n\n

看到了吗?这不是火箭科学。您只需添加一个参数并检查它。对于新手来说,这是一个完美的任务。

\n\n

编写代码:良好的行为准则

\n\n

当您参与PHP贡献时,请记住:您的代码将被其他人阅读。编写代码时,使其无需注释也能理解,但如果逻辑复杂,注释是必须的。

\n\n

以下是一些

博客

书籍推荐