为什么开源不可怕,反而有益?
\n\n您是否曾看着大型PHP项目的仓库,心想:“那里全是大师,我连看都不敢看”?这种感觉很熟悉。但事实是,开源贡献并非关于拥有20年经验的超级英雄。而是关于那些某一天决定“为什么不试试呢?”的普通开发者。
\n\n让我们分析一下您为什么需要做这件事。首先,参与PHP贡献是提升技能的最佳方式。您将阅读他人代码,理解架构,并学会编写代码,使其在代码审查时不被退回。其次,这是您的作品集。雇主非常喜欢在GitHub上有星星的候选人。第三,知道您的代码被全球数千(甚至数百万)开发者使用,这种感觉很棒。
\n\n但新手最大的恐惧是:“我会写出垃圾代码,然后被嘲笑”。剧透:不会的。在PHP开源社区中,帮助新手是常态。您会得到纠正,但会很礼貌。关键是开始行动。
\n\n从何开始?选择项目
\n\n不要立即尝试Symfony或Laravel。选择一个更简单的项目。理想的第一个项目是您自己使用的库或包。打开您的composer.json并查看依赖项。很可能有一些小型项目:Markdown解析器、日期处理库或简单的HTTP客户端。
以下是选择项目的几个标准:
\n\n- \n
- 项目活跃度:最后一次提交不超过3个月。否则您可能白费力气。 \n
- 存在标记为“good first issue”的issue:这是新手的金矿。许多PHP项目会特意标记简单任务。 \n
- 清晰的README:如果文档说明了如何运行测试和设置环境,这是一个好迹象。 \n
例如,访问GitHub并搜索带有good-first-issue标签的PHP开源项目。您会发现数百个等待英雄的任务。
第一步:阅读CONTRIBUTING.md
\n\n说真的,不要跳过这个文件。它通常包含所有信息:从提交命名规则到如何运行测试。如果您忽略CONTRIBUTING.md,您的工作可能仅仅因为格式不符而被拒绝。
PHP项目中的典型要求:
\n\n- \n
- 代码必须符合PSR-12(代码风格标准)。 \n
- 所有更改必须包含测试(PHPUnit, Pest)。 \n
- 提交必须签名或至少具有清晰的描述。 \n
寻找第一个任务:从issue到第一行代码
\n\n假设您找到了一个任务。例如,在PHP JSON处理库项目中有一个issue:“添加对JSON_THROW_ON_ERROR选项的支持”。听起来很吓人?实际上很简单:只需添加一个标志,使函数抛出异常而不是返回null。
以下是项目中可能出现的代码示例:
\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以下是一些