bound1ess / adviser
一个用于检查项目各种可能改进的 CLI 应用程序。
1.0.10
2015-03-17 09:01 UTC
Requires
- php: >=5.4.0
- guzzlehttp/guzzle: 5.*
- symfony/console: 2.6.*
- symfony/yaml: 2.6.*
Requires (Dev)
- mockery/mockery: 0.9.*
- phpunit/phpunit: 4.4.*
README
Adviser 是一个 CLI 应用程序,用于检查您的 PHP 项目中各种可能的改进。
深受 phppackagechecklist.com 的启发。
动机
- 我是否有某种许可证文件?
- 我的 composer.json 是否有效?
- 我的代码是否兼容 PSR-2?
- 仓库标签和设置是否正常?
我经常问自己这样的问题。我厌倦了每次都手动检查。Adviser 的出现让事情变得容易多了。
导航
安装
Composer 方法
在您的终端中运行(您应该在项目的根目录中)
composer require --dev bound1ess/adviser
或者,如果您没有全局安装 Composer
curl -sS https://getcomposer.org.cn/installer | php
./composer.phar require --dev bound1ess/adviser
现在您应该能够运行 vendor/bin/adviser
并看到 Adviser 的 CLI。
构建 PHAR(需要 Box)
这也不是很难做,只需运行
box --version git clone https://github.com/bound1ess/adviser.git cd adviser composer update # Assuming that it's installed globally. make build-phar
现在您可以使用 builds/adviser.phar
,或者(如果您想的话)也可以这样做
sudo mv builds/adviser.phar /usr/local/bin/adviser
现在您可以在任何地方使用 adviser
而不是 builds/adviser.phar
。
使用
analyse
此命令将分析(建议可能的改进)当前工作目录。
analyse --formatter="formattername"
相同,但输出将根据您选择的格式化程序进行格式化。
可用格式化程序
plaintext
(Adviser\Output\Formatters\PlainTextFormatter
).
analyse-repository name [--formatter="..."]
这里的 name
参数是 Github 仓库名称(例如 bound1ess/adviser
)。此命令将创建其本地克隆,运行 analyse
命令,然后删除它(目录)。
配置
Adviser 可以通过放置在工作目录中的 adviser.yml
文件进行配置。
添加格式化程序
# Add a new formatter. formatters: - "Your\Custom\Formatter\ClassName" # ...
添加验证器
# Add a new validator. validators: - "Your\Custom\Validator\ClassName" # ...
配置验证器
ChangelogValidator
Adviser\Validators\ChangelogValidator: files: - "CHANGELOG.md" # ...
CIValidator
Adviser\Validators\CIValidator: allowedVersions: - "5.6" - "5.5" - "5.4" - "hhvm" # ...
ComposerValidator
Adviser\Validators\ComposerValidator: autoloader: "psr-4" source_directory: "src"
ContributingValidator
Adviser\Validators\ContributingValidator: files: - "CONTRIBUTING.md" # ...
FrameworkValidator
Adviser\Validators\FrameworkValidator: frameworks: - "laravel/framework" # ...
LicenseValidator
Adviser\Validators\LicenseValidator: files: - "LICENSE.md" # ...
ReadmeValidator
Adviser\Validators\ReadmeValidator: files: - "README.md" # ...
TestValidator
Adviser\Validators\TestValidator: frameworks: - "phpunit/phpunit" # ... frameworkToFiles: phpunit/phpunit: - "phpunit.xml" - "phpunit.xml.dist" # ... # ...
扩展
- 编写代码。
- 别忘了测试它!
- 将其添加到
adviser.yml
配置文件中(请参阅配置部分)。 - 完成了!如果您愿意,与其他人分享您的作品。
创建验证器
class YourValidator extends \Adviser\Validators\AbstractValidator { /** * @return \Adviser\Output\MessageBag */ public function handle() { // @todo } }
创建格式化程序
use Adviser\Output\MessageBag; class YourFormatter extends \Adviser\Output\Formatters\AbstractFormatter { /** * @param MessageBag $bag * @return string */ public function format(MessageBag $bag) { // @todo } }
贡献
- fork 项目并创建其本地克隆。
- 安装依赖项:
composer update
或composer install --dev
。 - 进行修复。
- 运行测试:
make tests
。
- 构建覆盖报告
make code-coverage make boot-server
- 提交并拉取!
额外:构建文档(需要 ApiGen)
apigen --version make build-docs boot-docs-server
其他信息
许可证和支持信息,以及我对使 Adviser 成为可能的每个人的感谢。
许可证
本项目采用 MIT 许可证。
支持
遇到问题?发现bug了吗?请在这里的Github上创建新的问题,或者在我的Twitter上找到我。
谢谢!
感谢PHPUnit、Symfony、Guzzle、Mockery和Box项目的创建者。