g-1-a / starter
Requires
- php: >=8
Requires (Dev)
- consolidation/robo: ^4
- guzzlehttp/guzzle: ^7.0.1
- http-interop/http-factory-guzzle: ^1.0
- knplabs/github-api: ^3.8
- phpunit/phpunit: ^9
- squizlabs/php_codesniffer: ^3
This package is auto-updated.
Last update: 2023-04-19 20:37:45 UTC
README
这是一个带有许多预配置服务和功能的 PHP 项目。
特性
该项目提供或执行的功能包括
创建 GitHub 项目 | 带有自定义说明的 README |
优化的 composer.json | GitHub 贡献和问题模板 |
带有 Phar 构建器的命令行工具 | 数据驱动的单元测试示例 |
链接到 Coveralls 代码覆盖率设置 | PHP 8.0 - 8.1 的测试矩阵 |
链接到 Packagist 设置 | PSR-2 检查和 PHP linting |
Phar self:update 命令 | 配置文件 |
更多详细信息,请参阅下方的 特性说明 部分。
使用方法
要开始,导出你的 GitHub 个人访问令牌,然后创建一个新项目。
$ export GITHUB_TOKEN='...'
$ composer create-project g1a/starter my-new-project
新项目将属于当前认证的用户。如果你想在组织内创建新项目,则设置 GITHUB_ORG
环境变量。
$ export GITHUB_ORG='my-github-username-or-org'
新项目只能与 php 8.0 及更高版本一起工作。如果你需要使用更早版本的 php(如 php 7.1),则运行
$ composer create-project g1a/starter my-new-project:^2
创建新项目后,自动脚本将对其进行定制并设置一系列服务。有关更多信息,请参阅下方的 特性描述 部分。脚本运行完成后,您可以自定义 README 文件并开始编码!
访问令牌生成
推荐生成并导出以下服务的个人访问令牌,因为这样做将允许创建项目后的脚本自动配置和启用这些服务。
导出 | 令牌生成 URL |
---|---|
export GITHUB_TOKEN='...' | 生成 GitHub 令牌 |
手动服务配置
如果未设置这些服务的个人访问令牌,则可以在以后手动配置服务。此外,该项目还配置了与 Packagist 一起使用,此服务只需要通过其网页界面手动授权即可启用使用此模板创建的项目。
请根据下表中的链接配置您要使用的服务。
功能 | 手动设置 URL |
---|---|
协作仓库 | 创建 GitHub 项目 |
包管理器 | 在 Packagist 上注册 |
特性说明
GitHub 项目
在执行 composer create-project
命令以从提供的模板创建新项目后,将自动创建 GitHub 项目,并将您的代码自动推送到云端。
为了使此功能正常工作,您必须在 使用方法 部分中定义 GITHUB_TOKEN
环境变量。
README 模板
您的全新项目将使用项目 README 的概要设置,包括状态徽章,便于自定义。请按照新项目中提供的说明完成自定义步骤。
GitHub Actions 测试
GitHub Actions 将自动在每次将提交推送到 GitHub 时运行您的单元测试。
Packagist 代码分发
Packagist 是 Composer 项目的官方网站。项目自定义说明中包含一个链接,您可以点击注册您的项目到这个库。
数据驱动单元测试示例
您的全新项目附带一个简单的 Example
类,包含展示 phpunit @dataProvider 功能的测试。
PHP 8.0 - 8.1 的测试矩阵
包含的测试套件展示了在多个平台和 PHP 版本上进行测试。
PSR-2 检查和 PHP 代码检查
除了提供 phpunit 单元测试外,您的全新项目还将自动包含对 PSR-2 编码规范的样式检查,并对代码进行语法错误和其他问题的检查。
这些功能可以通过 composer cs
和 composer lint
命令分别访问。提供了一个预先配置为在支持此功能的编辑器中维护 PSR-2 规范的 .editorconfig 文件。
GitHub 贡献和问题模板
GitHub 允许项目定义在打开新问题或拉取请求时呈现给用户的 拉取请求和问题模板。还可以提供 贡献文档 来向新用户解释项目规范。
所有这些文件的 Starter 版本将自动添加到您的全新项目中,并可按需自定义。默认情况下,CONTRIBUTING.md 文件将添加到项目根目录以获得更好的可见性,但您也可以根据需要将其移动到 .github 目录。
命令行工具
您的项目将配置为构建命令行工具,并且还包括使用 humbug/box 项目打包它的命令。如果您的项目是一个库,您可能仍然希望包含一个命令行工具来提供对库函数的即席使用,无论是用于测试目的,还是直接编辑由您的库管理的任何数据存储。
如果您不需要命令行工具,只需删除 src/Cli
和 tests/ExampleCommandsTest.php
目录,并从您的 composer.json 文件中移除 phar:*
命令以及 example
和 box.json.dist
文件即可。
优化后的composer.json
项目中的composer.json
文件预先配置了一些设置以方便使用
optimize-autoloader
:创建更大的自动加载文件,以便更快地找到类sort-packages
:保持包列表按字母顺序排列platform:php
:确保Composer只选择与声明的最低PHP版本兼容的包。
优化后的Composer dist发行版
您的项目的.gitattributes文件已预先配置,以排除Composer dist
发行版中的不必要的文件。
配置文件
您的项目将自动读取一个yaml格式的配置文件,您可以使用它来提供命令选项默认值并存储其他可覆盖的用户设置。有关更多信息,请参阅consolidation/config。
贡献
请阅读CONTRIBUTING.md,了解提交pull请求给我们的详细过程。
许可协议
本项目采用MIT许可协议 - 详细信息请参阅LICENSE文件。
致谢
- 本项目大量使用了来自Drush、Robo PHP和其他Consolidation项目的配置技术和代码。
- KnpLabs github-api和guzzle使得本项目进行API调用变得非常简单。