league/tactician-phpstan

查找缺失的处理程序、错误的类型提示等。

安装: 27

依赖者: 0

建议者: 0

安全: 0

星标: 10

关注者: 5

分支: 1

开放问题: 2

类型:phpstan-extension

v0.1-rc1 2019-09-18 19:35 UTC

This package is auto-updated.

Last update: 2024-09-19 16:53:42 UTC


README

Travis CI Scrutinizer Code Quality Code Coverage Build Status MIT License

一个轻量级、灵活的命令总线 进行静态分析。

传统上,命令总线可能会掩盖静态分析。Tactician PHPStan 插件通过查找缺失的处理程序类、验证处理程序返回类型等方式,帮助实现更强的类型检查。

安装

使用 Composer

composer require --dev league/tactician-phpstan

注册插件

如果您还安装了 phpstan/extension-installer,那么您已经设置好了!

手动安装

如果您不想使用 phpstan/extension-installer,请将 extension.neon 包含到您的项目 PHPStan 配置中

includes:
    - vendor/league/tactician-phpstan/extension.neon

配置

您需要使您的 CommandToHandlerMapping 对 PHPStan 可用。最简单的方法是创建一个小的引导文件,该文件返回您在应用程序中使用相同的处理程序配置。

这个版本的简单示例可能如下所示

# handler-mapper-loader.php
<?php

require_once __DIR__.'/vendor/autoload.php';

use League\Tactician\Handler\Mapping\ClassName\Suffix;
use League\Tactician\Handler\Mapping\MapByNamingConvention;
use League\Tactician\Handler\Mapping\MethodName\Handle;

return new MapByNamingConvention(
    new Suffix('Handler'),
    new Handle()
);

您可以使用您的引导文件、依赖注入容器或其他任何您喜欢的东西,您只需要返回一个 CommandToHandlerMapping

现在在您的 phpstan.neon 配置中公开引导文件。

# phpstan.neon
parameters:
    tactician:
        bootstrap: handler-mapping-loader.php

然后您就可以出发了!

使用不同的命令总线类

在应用程序中,通常会有从应用程序到任何外部包(包括 Tactician)的桥梁接口。在这种情况下,您将有一个不同的命令总线类,Tactician-PHPStan 不会捕获错误,因为它正在寻找对 League\Tactician\CommandBus 的使用。

相反,您可以配置命令总线类以扫描,以及(可选地)使用的方法

# phpstan.neon
parameters:
    tactician:
        bootstrap: handler-mapping-loader.php
        class: My\App\CommandBus
        method: execute

如果没有指定任何内容,默认类是 League\Tactician\CommandBus,方法名为 handle

测试

要运行所有单元测试,请使用本地安装的 PHPUnit

./vendor/bin/phpunit

安全

Tactician 没有先前的安全披露,由于项目的性质,也不太可能。但是,如果您担心在 Tactician 或其相关项目中发现了安全敏感的问题,请通过电子邮件向 disclosures [at] rosstuck dot com 报告。

贡献

有关详细信息,请参阅 CONTRIBUTING