代码之家  ›  专栏  ›  技术社区  ›  DevilaN

用PHPSTAN配置VIM ALE插件

  •  0
  • DevilaN  · 技术社区  · 6 年前

    我正在使用 ALE 为了我的PHP开发。 有可能使用 phpstan 普斯坦 无法加载类/方法定义:

    Function foo not found while trying to analyse it - autoloading is probably not configured properly.
    

    ALE 不幸的是没有帮助,因为它期望 普斯坦 进入 $PATH

    1 回复  |  直到 6 年前
        1
  •  2
  •   DevilaN    6 年前

    这个解决方案是 git composer

    我没有找到一个好的解决方案,没有任何风险投资或 作曲家 .

    所以首先我们假设 作曲家 在项目中使用,所以 autoload.php 已生成文件。如果您不使用此功能,您可能应该这样做,因为它将类映射到文件并使自动加载变得简单。

    不幸的是使用全局 phpstan 二进制是徒劳的。这是因为 在当前目录中查找自动加载或neon配置文件,该文件告诉它在何处查找类定义。因此,如果您不想被迫从根项目的目录打开项目中的每个文件,那么应该有另一种解决方案。

    普斯坦 二进制文件安装者 作曲家 vendor/bin/phpstan )解决了这个问题。本地二进制使用相同的 普斯坦

    插入 vimrc .vim/ftplugin/php.vim )以下行:

    let g:ale_php_phpstan_executable = system('if ! type git &> /dev/null; then echo phpstan; else PSE=`git rev-parse --show-toplevel 2> /dev/null`/vendor/bin/phpstan; if [ -x "$PSE" ]; then echo -n $PSE; else echo phpstan; fi; fi')
    

    普斯坦 可执行文件,由运行shell命令确定。

    if ! type git 零件检查是否有 吉特 普斯坦 文本正在返回到变量。

    git rev-parse --show-toplevel 存储库和它的顶级目录是什么。正确找到后,它将确定 /vendor/bin/phpstan 到顶级目录。这是本地安装的地方 应该居住。 如果没有这样的文件或它不是可执行文件,则默认为 普斯坦 正在返回变量值。