Sublimetext3 升华仪:模块PHPC和phpmd不工作

Sublimetext3 升华仪:模块PHPC和phpmd不工作,sublimetext3,sublimelinter,phpmd,phpcs,Sublimetext3,Sublimelinter,Phpmd,Phpcs,在Sublime Text 3中,我通过软件包管理器安装了以下软件包: 升华仪 升华仪phpmd 升华仪 其他的也很少 问题是phpmd或phpc都不工作。在ST3中打开php文件,然后单击:ctrl和“我得到以下调试信息: SublimeLinter: debug mode: on SublimeLinter: temp directory: c:\users\alekspav\appdata\local\temp\SublimeLinter3-alekspav SublimeLint

Sublime Text 3
中,我通过
软件包管理器安装了以下软件包:

  • 升华仪
  • 升华仪phpmd
  • 升华仪
  • 其他的也很少
问题是
phpmd
phpc
都不工作。在ST3中打开
php
文件,然后单击:
ctrl
和“我得到以下调试信息:

SublimeLinter: debug mode: on 
SublimeLinter: temp directory: c:\users\alekspav\appdata\local\temp\SublimeLinter3-alekspav 
SublimeLinter: annotations activated: <builtin> 
SublimeLinter: json activated: <builtin> 
SublimeLinter: WARNING: phpcs deactivated, cannot locate 'phpcs' 
SublimeLinter: annotations activated: <builtin> 
SublimeLinter: WARNING: jshint deactivated, cannot locate 'jshint' 
SublimeLinter: php activated: C:\xampp\php\php.exe 
SublimeLinter: WARNING: phpmd deactivated, cannot locate 'phpmd'
SublimeLinter: WARNING: htmltidy deactivated, cannot locate 'tidy' 
SublimeLinter: WARNING: csslint deactivated, cannot locate 'csslint' 
SublimeLinter: php: submitter.php ['C:\\xampp\\php\\php.exe', '-l', '-n', '-d', 'display_errors=On', '-d', 'log_errors=Off'] 
SublimeLinter: php output:
No syntax errors detected in - 
正如您所猜测的,这并没有解决问题。我还尝试在结尾不带/的情况下写入路径,并尝试使用\delimeter而不是/。我还尝试直接指定PFAM文件。。并且还尝试使用${project}变量而不是整个C:/path。ST3重启后,我仍然收到警告

我的另一个问题是-如何在调试窗口中输出“${project}”目录?因为我不确定它是否设置正确,所以我想测试它

更多信息:

升华项目目录是:
C:\xampp\htdocs\web\test.Sublime项目

以下是
phpmd
phpcs
安装:

  • “C:\xampp\htdocs\web\vendor\bin\phpcs\phpcbf.phar”
  • “C:\xampp\htdocs\web\vendor\bin\phpcs\phpcs.phar”
  • “C:\xampp\htdocs\web\vendor\bin\phpmd\phpmd.phar”
编辑:

看来我做错了。我在项目目录中添加了一个
composer.json
,内容如下:

{
    "require-dev": {
        "squizlabs/php_codesniffer": "2.*",
        "phpmd/phpmd" : "@stable",
        "mongodb/mongodb" : "@dev"
    }
}
使用
composer install
命令安装完所有内容后,我得到了为我创建的
vendor
文件夹,其中包含大量目录,包括
bin
文件夹。它现在有所有必要的文件,但我仍然得到相同的错误。由于某些原因找不到模块。

好的

我不确定这是一个bug还是一个特性,但我找到了问题的解决方案

  • 首先-您必须使用
    pear
    安装
    phpcs
    phpmd
    !如果没有此选项,您将看到来自初始帖子的警告
  • phpcs:pear安装PHP\u代码嗅探器

    phpmd:此处的说明:(我不记得另一个存储库的名称,但在第一次安装过程中,您将遇到一个错误,即缺少某些库,并会提示您添加一个缺少phpmd pear安装依赖项的存储库。非常简单)

    启动ST3并检查。不需要在配置中进行编辑。两个模块都应该在
    升华文本3
    中工作!但是我们现在使用的是
    pear
    模块,而不是
    composer
    模块。我最初的想法是使用
    conmposer
    。它更容易维护和更新

    如果你不熟悉它-谷歌。在项目目录中,您应该有一个名为
    composer.json
    的文件,其内容类似于:

    {
        "require-dev": {
            "squizlabs/php_codesniffer":    "2.*",
            "phpmd/phpmd" :                 "@stable"
        }
    }
    
    然后使用
    Windows命令提示符
    composer安装
    命令安装所有模块

  • sublimeLiner
    的intail post-in用户配置中所述,使用以下配置:

        "phpcs": {
            "@disable": false,
            "args": [],
            "cmd": "${project}/vendor/bin/phpcs.bat",
            "excludes": [],
            "standard": "${project}/vendor/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR2/ruleset.xml"
        },
        "phpmd": {
            "@disable": false,
            "args": [],
            "cmd": "${project}/vendor/bin/phpmd.bat",
            "excludes": [],
            "rulesets": "cleancode,codesize,controversial,design,naming,unusedcode"
        }
    
  • 现在重新启动升华测试3,打开调试并打开PHP文件。结果是:

    reloading plugin SublimeLinter-phpcs.linter
    SublimeLinter: phpcs linter loaded 
    reloading plugin SublimeLinter-phpmd.linter
    SublimeLinter: phpmd linter loaded 
    ...
    reloading settings Packages/User/SublimeLinter.sublime-settings
    SublimeLinter: phpcs activated: C:\xampp\php\phpcs.bat 
    SublimeLinter: phpmd activated: C:\xampp\php\phpmd.bat 
    ...
    SublimeLinter: phpcs: index.php ['C:/xampp/htdocs/web/vendor/bin/phpcs.bat', '--report=checkstyle', '--standard=C:/xampp/htdocs/web/vendor/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR2/ruleset.xml'] 
    SublimeLinter: phpcs output:
    .. errors in PHP file listed
    Package Control: Skipping automatic upgrade, last run at 2016-09-05 17:12:20, next run at 2016-09-05 18:12:20 or after
    ...
    SublimeLinter: phpmd: index.php ['C:/xampp/htdocs/web/vendor/bin/phpmd.bat', '@', 'text', 'cleancode,codesize,controversial,design,naming,unusedcode'] 
    SublimeLinter: phpmd output:
    .. errors in PHP file listed
    
    如您所见-
    subliveliter
    首先在
    PHP
    目录中加载
    pear
    bat
    s!但是当提交
    PHP
    文件进行分析时,它使用的是项目目录中新的
    bat
    s


    我的解释是,在使用
    composer
    等同物之前,始终需要安装
    pear
    phpcs
    phpmd
    。如果你问我的话,这很愚蠢。。但是我找不到任何其他的解决办法。

    我也很难让Supremeliner phpmd工作。下面是我如何修复它的:

    假设:

    • 你在windows上
    • 您已安装sublime text 3和SublimiteLiner
    步骤:

  • 安装pear:
  • 重要:将pear目录添加到$PATH中
  • 在pear目录下使用pear安装phpmd
  • 重新启动升华文本3
  • 对我来说,这是因为我错过了第2步,所以phpmd linter无法工作

    不需要使用composer为每个项目安装phpmd。安装升华仪phpmd后,无需手动修改升华仪的设置


    这可能会有所帮助。

    好吧,我认为如果您只需将
    BIN
    文件夹路径添加到
    path
    环境变量中,问题就会得到解决。。这个想法是
    sublimeLineter
    在第一次启动时不寻找“cmd”参数。它无法在
    PHP
    目录中找到
    bat
    文件,因为如果没有
    pear
    安装
    phpcs
    phpmd
    ,就不会有这样的文件。所以,如果你告诉他“嘿,看看这个文件夹”——它应该识别
    BIN
    文件夹中的文件。无论如何,我对我的第一篇文章很满意,不想破坏任何东西:)奇怪的是,我不能编辑我自己的帖子。。无论如何,我认为这个问题也可以通过创建一个指向
    PHP
    文件夹的符号链接来解决。我指的是bat到
    PHP
    目录的
    快捷方式。。但当然没有经过测试。
    
    reloading plugin SublimeLinter-phpcs.linter
    SublimeLinter: phpcs linter loaded 
    reloading plugin SublimeLinter-phpmd.linter
    SublimeLinter: phpmd linter loaded 
    ...
    reloading settings Packages/User/SublimeLinter.sublime-settings
    SublimeLinter: phpcs activated: C:\xampp\php\phpcs.bat 
    SublimeLinter: phpmd activated: C:\xampp\php\phpmd.bat 
    ...
    SublimeLinter: phpcs: index.php ['C:/xampp/htdocs/web/vendor/bin/phpcs.bat', '--report=checkstyle', '--standard=C:/xampp/htdocs/web/vendor/squizlabs/php_codesniffer/CodeSniffer/Standards/PSR2/ruleset.xml'] 
    SublimeLinter: phpcs output:
    .. errors in PHP file listed
    Package Control: Skipping automatic upgrade, last run at 2016-09-05 17:12:20, next run at 2016-09-05 18:12:20 or after
    ...
    SublimeLinter: phpmd: index.php ['C:/xampp/htdocs/web/vendor/bin/phpmd.bat', '@', 'text', 'cleancode,codesize,controversial,design,naming,unusedcode'] 
    SublimeLinter: phpmd output:
    .. errors in PHP file listed