clippings / composer-init
基于模板包初始化 composer 包
Requires
- guzzlehttp/guzzle: ^6.1.1
- symfony/console: ^2.5
README
每次开始新项目时都厌倦了创建相同的目录结构?厌倦了每次克隆 github 模板仓库时不断修改文件?这个命令行工具允许你根据模板初始化项目,并在模板中填写值。
安装
通过 composer 安装
$ composer global require clippings/composer-init
这将将其安装到你的用户全局 composer 中。如果你已经将 ~/.composer/vendor/bin/ 添加到你的 PATH 中,你可以使用以下命令开始使用它
$ composer-init
否则,你可以直接调用
$ ~/.composer/vendor/bin/composer-init
基本用法
composer-init search
查找模板composer-init use {template-package}
在空文件夹中使用模板composer-init token {token}
设置用于超过 github 速率限制 的 github token
composer-init
从 github 仓库和组织获取许多默认值,因此最好在 github 中创建一个空仓库,本地克隆它,然后在其中运行 "composer-init use ..."。
创建模板
composer-init 模板必须发布到 Packagist.org,(因此有一个 composer.json 文件)并且有一个 prompts.json 文件来描述哪些可用的提示将被使用。包应该以 "type": "composer-init-template" 发布。所有模板的代码都位于 "root" 目录中。
示例 composer.json 文件
{ "name": "clippings/package-template", "description": "Package Template", "license": "MIT", "type": "composer-init-template", "authors": [ { "name": "John Smith", "email": "john@example.com", "role": "Author" } ] }
示例 prompts.json 文件
[ "package_name", "title", "description", "php_namespace", "author_name", "author_email", "copyright", "bugs" ]
这表示此包将使用这些提示,收集它们的输入,然后填写根文件夹中所有文件的占位符。
以下是一个示例模板: https://github.com/clippings/package-template/
提示
所有提示都试图猜测一个合理的默认值,但会要求用户确认/纠正其值。
author_email
作者的电子邮件,默认使用 git config user.email
。你可以使用 git config user.email {my email}
或全局使用 git config --global user.email {my email}
自定义它。如 第一次 git 设置 指南中所述
添加 {% author_email %}
模板变量
author_name
作者的名字,默认使用 git config user.name
。你可以使用 git config user.name {my name}
或全局使用 git config --global user.name {my name}
自定义它。如 第一次 git 设置 指南中所述
添加 {% author_name %}
模板变量
bugs
提交新问题的 URL。默认获取仓库的 gitub 问题 URL。例如 https://github.com/clippings/composer-init/issues
添加 {% bugs %}
模板变量
版权
通过以下方式尝试猜测版权持有者:
- GitHub 组织
- GitHub 用户
- Git 用户
- 文件所有者
并以 "{year}, {copyright_entity}" 的形式公开 - 其中 year 是当前年份,而 copyright_entity 是猜测的值。您还可以单独获取 copyright_entity
的值
添加 {% copyright %}
模板变量
添加 {% copyright_entity %}
模板变量
描述
GitHub 仓库的描述。
添加 {% description %}
模板变量
包名
GitHub 包名,例如 clippings/composer-init
添加 {% package_name %}
模板变量
PHP 命名空间
尝试通过 GitHub 的组织/用户名和仓库名来猜测包名。因此,clippings/composer-init
将被转换为 Clippings\ComposerInit
。它还尝试猜测带有首字母缩略词的名称,因此在这种情况下,它还会提供 CL\ComposerInit
的选项。这些可以通过制表符补全或自动完成时输入来循环
添加 {% php_namespace %}
添加 {% php_namespace_escaped %}
模板变量,其中所有 "\" 字符都被转换为 "\\"
Slack 通知
获取 "安全的 Slack 通知令牌"。基本上请求一个值并返回 "slack:\n secure: {value}\n",这样您就可以轻松地将 Slack 添加到 .travis.yml 通知中
标题
GitHub 仓库的标题。
添加 {% title %}
模板变量
致谢
灵感来源于 grunt-init
版权 (c) 2014-2015, Clippings Ltd。由 Ivan Kerin 作为 clippings.com 的一部分开发
在 BSD-3-Clause 许可下,请参阅 LICENSE 文件。