maslosoft / hedron
PHP源代码类头应用器
2.0.2
2023-06-16 06:33 UTC
Requires
- php: >=8.2
- ext-json: *
- maslosoft/addendum: *
- maslosoft/cli-shared: *
- symfony/console: >=2.7 <7.0
- symfony/finder: >=2.7 <7.0
- symfony/yaml: >=2.7 <7.0
- zordius/lightncandy: ^1
Requires (Dev)
- maslosoft/sitcom: *
- roave/security-advisories: dev-latest
Suggests
- maslosoft/sitcom: Collect commands with signals
README
Maslosoft Hedron
快速安装
composer require maslosoft/hedron
文档
保持类头的一致性
在开发项目时,我们经常需要文件中包含PHP类有一些预定义的注释头。这可能包括包信息、许可、主页地址等。
一次性应用所有
此工具提供了一种安全的方式修改整个项目中的类头 - 使用PHP标记解析器,以确保只有在100%安全的情况下才会修改文件。
Hedron帮助您使类头保持最新和一致。它将对包含命名空间类定义的所有文件应用预定义的头。
安装
composer require maslosoft/hedron --dev
使用
预览应用头部的文件列表
vendor/bin/hedron preview
显示渲染的模板
vendor/bin/hedron show
将头部应用到所有类文件。
在继续之前,请备份/提交您的项目。 这将把头部写入文件。
vendor/bin/hedron commit
配置
配置可以提供在项目根目录下的yaml文件.hedron.yml
中。Hedron还使用composer.json
来简化您的配置,甚至可能是不必要的。
以下是一个示例配置,包含示例值(请参阅.hedron.example.yml
)
# All paths are realtive to your project root
# Root path or paths with sources. If blank will use composer.autoload paths.
sources: ""
# Path to template file, if blank will use vendor/maslosoft/hedron/templates/default.html (no it's not html)
template: ""
# Filter configuration, by default empty. Below is some example filter.
filter:
whitelist:
include:
- app/*
exclude:
- app/cache/*
blacklist:
include:
- app/controllers/*
exclude:
- app/cache/CacheProvider.php
# Reserved
# This contains composer.json as array
composer: ""
tmp: ""
所有这些配置都在模板中可用。
模板
模板使用handlebars作为模板引擎。它包含来自.hedron.yml
和composer.json
的所有数据。
以下是一个示例,默认模板
This software package is licensed under {{composer.license}} license.
@package {{composer.name}}
@licence {{composer.license}}
{{#each composer.authors}}
@copyright Copyright (c) {{name}} <{{email}}>
{{/each}}
{{#if composer.homepage}}@link {{composer.homepage}}{{/if}}
渲染后看起来像这样
/**
* This software package is licensed under New BSD license.
*
* @package maslosoft/hedron
* @licence New BSD
*
* @copyright Copyright (c) Peter Maselkowski <pmaselkowski@gmail.com>
*
* @link http://maslosoft.com/hedron/
*/
替换
此脚本批量修改源文件。为了安全和稳健,它使用原生PHP标记解析器,替换所有在namespace
标记之前的内容。仅此而已。如果没有命名空间声明,文件将不会被修改。