g1a/starter

PHP 库的模板项目。

4.0.2 2022-10-07 02:46 UTC

README

这是一个带有许多预配置服务和功能的 PHP 开发者项目。

License

功能

此项目提供或执行的事情包括

有关更多详细信息,请参阅下文的功能说明部分。

使用方法

要开始使用,导出您的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 文件并开始编码!

访问令牌生成

为以下服务生成并导出个人访问令牌是推荐的,因为这将允许创建项目后的脚本自动配置和启用这些服务。

手动服务配置

如果未设置这些服务的个人访问令牌,则可以在以后手动配置这些服务。此外,此项目也配置了与 Packagist 一起使用,此服务只需通过他们的网络界面手动授权即可启用使用此模板创建的项目。

通过下表中的链接配置您想要使用的服务。

功能说明

GitHub 项目

运行 composer create-project 命令并从提供的模板创建新项目后,将自动创建 GitHub 项目,并将您的代码自动推送到 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 linting

除了提供 phpunit 的单元测试外,您的项目还将自动包含 PSR-2 编码约定风格的检查,并检查代码中的语法错误和其他问题。

这些功能可以通过composer cscomposer lint命令分别访问。提供了一个预配置的.editorconfig文件,以在支持此功能的编辑器中维护PSR-2约定。

GitHub贡献和问题模板

GitHub具有一个功能,允许项目定义拉取请求和问题模板,当打开新的问题或拉取请求时将展示给用户。此外,还可以提供一个贡献文档,以向新用户解释项目约定。

所有这些文件的入门版本将自动添加到您的项目中,可以根据需要自定义。默认情况下,将在项目根目录中添加CONTRIBUTING.md文件以提高可见性,但如果您更愿意,可以将其移动到.github目录。

命令行工具

您的项目将配置为构建命令行工具,并包括使用humbug/box项目将其打包为phar的命令。如果您的项目是一个库,您可能仍然希望包含一个命令行工具,以提供对库函数的即兴使用,无论是为了测试目的,还是直接编辑由您的库管理的任何数据存储。命令行工具的依赖关系在require-dev部分声明,因此当您的项目作为其他项目的依赖项时,它们不会被拉取。

如果您不需要命令行工具,只需删除src/Clitests/ExampleCommandsTest.php目录,并从您的composer.json文件中删除phar:*命令,以及删除examplebox.json.dist文件。

优化后的composer.json

项目中的composer.json文件预先配置了一些设置以方便使用

  • optimize-autoloader:创建更大的自动加载文件,可以更快地查找类
  • sort-packages:保持包列表按字母顺序排列
  • platform:php:确保Composer只会选择与声明的最小PHP版本兼容的包。

优化的Composer分发布局

您的项目的.gitattributes文件预先配置为在Composer dist分发布局中排除不必要的文件。

配置文件

您的项目将自动读取一个yaml格式的配置文件,您可以使用它提供命令选项默认值和存储其他用户可覆盖的设置。有关更多信息,请参阅consolidation/config

贡献

请阅读CONTRIBUTING.md以了解向我们提交拉取请求的详细过程。

许可

本项目遵循MIT许可 - 请参阅LICENSE文件以获取详细信息。

鸣谢