此文档介绍了 ThinkPHP 团队的组成以及运转机制,您提交的代码将给 ThinkPHP 项目带来什么好处,以及如何才能加入我们的行列。
ThinkPHP 目前使用 Git 来控制程序版本,如果你想为 ThinkPHP 贡献源代码,请先大致了解 Git 的使用方法。我们目前把项目托管在 GitHub 上,任何 GitHub 用户都可以向我们贡献代码。
参与的方式很简单,fork
一份 ThinkPHP 的代码到你的仓库中,修改后提交,并向我们发起pull request
申请,我们会及时对代码进行审查并处理你的申请并。审查通过后,你的代码将被merge
进我们的仓库中,这样你就会自动出现在贡献者名单里了,非常方便。
我们希望你贡献的代码符合:
- ThinkPHP 的编码规范
- 适当的注释,能让其他人读懂
- 遵循 Apache2 开源协议
如果想要了解更多细节或有任何疑问,请继续阅读下面的内容
- 本项目代码格式化标准选用 PER-CS2.0;
- 类名和类文件名遵循 PSR-4;
- 对于 Issues 的处理,请使用诸如
fix #xxx(Issue ID)
的 commit title 直接关闭 issue。 - 系统会自动在 PHP 8.0 ~ 8.3 版本上测试修改,请确保你的修改符合 PHP 版本的语法规范;
- 管理员不会合并造成 CI Failed 的修改,若出现 CI Failed 请检查自己的源代码或修改相应的单元测试文件;
GitHub 提供了 Issue 功能,该功能可以用于:
- 提出 bug
- 提出功能改进
- 反馈使用体验
该功能不应该用于:
- 提出修改意见(涉及代码署名和修订追溯问题)
- 不友善的言论
GitHub 提供了快速编辑文件的功能
- 登录 GitHub 帐号;
- 浏览项目文件,找到要进行修改的文件;
- 点击右上角铅笔图标进行修改;
- 填写
Commit changes
相关内容(Title 必填); - 提交修改,等待 CI 验证和管理员合并。
若您需要一次提交大量修改,请继续阅读下面的内容
fork
本项目;- 克隆(
clone
)你fork
的项目到本地; - 新建分支(
branch
)并检出(checkout
)新分支; - 添加本项目到你的本地 git 仓库作为上游(
upstream
); - 进行修改,若你的修改包含方法或函数的增减,请记得修改单元测试文件;
- 变基(衍合
rebase
)你的分支到上游 master 分支; push
你的本地仓库到 GitHub;- 提交
pull request
; - 等待 CI 验证(若不通过则重复 5~7,GitHub 会自动更新你的
pull request
); - 等待管理员处理,并及时
rebase
你的分支到上游 master 分支(若上游 master 分支有修改)。
若有必要,可以 git push -f
强行推送 rebase 后的分支到自己的 fork
绝对不可以使用 git push -f
强行推送修改到上游
- 若对上述流程有任何不清楚的地方,请查阅 GIT 教程,如 这个;
- 对于代码不同方面的修改,请在自己
fork
的项目中创建不同的分支(原因参见完整流程
第9条备注部分); - 变基及交互式变基操作参见 Git 交互式变基
- XAMPP - Windows、Linux、Mac OS
- WampServer - Windows
- Docker - Windows、Linux、Mac OS
或自行安装
- Apache / Nginx
- PHP 8.0 ~ 8.3
- MySQL / MariaDB
Windows 用户推荐添加 PHP bin 目录到 PATH,方便使用 composer
Linux 用户自行配置环境, Mac 用户推荐使用内置 Apache 配合 Homebrew 安装 PHP 和 MariaDB
Sublime Text 3 + phpfmt 插件
phpfmt 插件参数
{
"autocomplete": true,
"enable_auto_align": true,
"format_on_save": true,
"indent_with_space": true,
"psr1_naming": false,
"psr2": true,
"version": 4
}
或其他 编辑器 / IDE 配合自动格式化工具
- SourceTree
- GitHub Desktop
或其他 Git 图形界面客户端