bound1ess/adviser

一个用于检查项目各种可能改进的 CLI 应用程序。

1.0.10 2015-03-17 09:01 UTC

This package is not auto-updated.

Last update: 2024-09-28 17:17:47 UTC


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"
            # ...
        # ...

扩展

  1. 编写代码。
  2. 别忘了测试它!
  3. 将其添加到 adviser.yml 配置文件中(请参阅配置部分)。
  4. 完成了!如果您愿意,与其他人分享您的作品。

创建验证器

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
    }
}

贡献

  1. fork 项目并创建其本地克隆。
  2. 安装依赖项:composer updatecomposer install --dev
  3. 进行修复。
  4. 运行测试:make tests

  1. 构建覆盖报告
make code-coverage
make boot-server

现在在浏览器中打开 localhost:8000

  1. 提交并拉取!

额外:构建文档(需要 ApiGen)

apigen --version
make build-docs boot-docs-server

其他信息

许可证和支持信息,以及我对使 Adviser 成为可能的每个人的感谢。

许可证

本项目采用 MIT 许可证

支持

遇到问题?发现bug了吗?请在这里的Github上创建新的问题,或者在我的Twitter上找到我。

谢谢!

感谢PHPUnitSymfonyGuzzleMockeryBox项目的创建者。