seferov/typhp

强制类型声明

v0.2.0 2019-10-24 18:37 UTC

README

Build Status

typhp 是一个简单的工具,用于检查是否声明了参数或返回值的类型。与静态分析工具不同,它不会指出可能存在的错误和问题,而是建议尽可能地进行类型提示。

适用对象

  • 使用 PHP 7.1 及更高版本的项目开发者。
  • 不希望在代码审查过程中通过 CI 流程使用它指出代码中缺少类型提示和返回类型声明的人。
  • 喜欢严格类型和防御性编程的人。

功能

  • 尊重 phpdoc;在一些罕见情况下,需要混合或复合类型。如果这些情况在 phpdoc 中进行了文档化,typhp 不会报错。例如:@return array|bool@param mixed $foo 等。
  • 考虑 魔术方法
  • 基于配置进行分析。包含/排除要分析的文件和目录。有关可选配置文件,请参阅 当前项目示例
  • 不会修改您的代码

安装

安装 typhp 有几种方法。推荐使用 phar 发行版。这样,您就不会遇到可能的依赖冲突。

Phar

最新 Github 发布版 直接下载

wget https://github.com/seferov/typhp/releases/download/v0.2.0/typhp.phar -O typhp
chmod +x typhp

您可以使用 Phive 安装 phar 发行版

phive install seferov/typhp --global

Composer

您可以使用 composer 在全局范围内安装 typhp

composer global require seferov/typhp

如果您愿意,可以将它作为开发依赖项添加到您的项目中。

composer require require seferov/typhp --dev

使用

typhp analyse 路径

如果项目根目录中存在配置文件(.typhp.yml),则可以通过 vendor/bin/typhp 运行。

示例输出

Example

待办事项

  • 分析闭包

  • 根据 PHP 版本进行检查。例如,不要抑制 >= PHP 7.2 的 @param object

  • 更好的配置

  • 通过配置检查 declare(strict_types=1)

  • Phar 文件

  • 自动部署 Phar 文件到发布资源,并添加自更新命令

  • Github Actions

问题

由于这是一个测试版发布,可能会有一些问题。如果您发现一个问题,请在此提交 here