phpstan的Emacs接口,包括Flycheck的检查器。
Mx package-install flycheck-phpstan( defun my-php-mode-setup ()
" My PHP-mode hook. "
( require 'flycheck-phpstan )
(flycheck-mode t ))
( add-hook 'php-mode-hook 'my-php-mode-setup )( add-hook 'php-mode-hook # 'flymake-phpstan-turn-on )安装Docker和Phpstan/Phpstan图像。
如果您始终将docker用于phpstan,请在.emacs文件中添加以下内容(~~/.emacs.d/init.el〜)
( setq-default phpstan-executable 'docker )将以下内容放入项目的根.dir-locals.el中。
(( nil . ((php-project-root . git)
(phpstan-executable . docker)
(phpstan-working-dir . (root . " path/to/dir " ))
(phpstan-config-file . (root . " path/to/dir/phpstan-docker.neon " ))
(phpstan-memory-limit . " 1G " )
(phpstan-level . 7 ))))如果您的项目作曲家依靠Phpstan,则无需设置任何内容。
(( nil . ((php-project-root . git)
(phpstan-executable . docker)
(phpstan-working-dir . (root . " path/to/dir " ))
(phpstan-config-file . (root . " path/to/dir/phpstan-docker.neon " ))
(phpstan-level . 7 ))))请使用作曲家为每个用户环境或项目安装PHPSTAN/PHPSTAN软件包。
如果您不熟悉解决依赖项,则建议使用以下外壳命令。
$ composer global require phpstan/phpstan注意:phpstan/phpstan-shim被弃用。请阅读phpstan 0.12发布!
注意: phpstan.el需要phpstan ** 0.10+**。我们强烈建议使用最新的phpstan。
请从版本/phpstan/phpstan下载phpstan.phar 。
Phpstan的变量主要由目录变量( .dir-locals.el )控制。
通常(root. "path/to/file")符号出现在这些变量中。它相对于项目的顶级目录。通常,包含.projectile , composer.json , .git文件(或目录)的目录位于最高级别。
请注意,PHP项目的根目录可能与PHPSTAN的%rootDir%和/或%currentWorkingDirectory%不匹配。
通常,您会设置以下.dir-locals.el 。
(( nil . ((php-project-root . auto)
(phpstan-executable . docker)
(phpstan-working-dir . (root . " path/to/dir/ " ))
(phpstan-config-file . (root . " path/to/dir/phpstan-custom.neon " ))
(phpstan-level . max ))))如果项目的根目录中有一个phpstan.neon文件,则无需设置phpstan-working-dir和phpstan-config-file 。
该软件包提供了使用emacs的phpstan的方便命令。
phpstan-insert-dumptype添加PHPStandumpType(...);对于您的PHP代码,并分析它以使PHPSTAN显示表达式的类型。
(Dewine-Key Php-Mode-Map(kbd“ cc ^”)#'phpstan-insert-dumptype)
默认情况下,如果在调用命令之前按Cu ,将插入PHPStandumpPhpDocType() 。
此功能添加在phpstan 1.12.7中,并将转储与@param和@return phpdoc标签兼容。
phpstan-insert-ignore插入@phpstan-ignore标签,以抑制当前行上的任何PHPSTAN错误。
默认情况下,它将标签插入上一行,但是如果当前行的末尾或上线上已经有一个标签,则标识符将附加在此处。
如果没有现有标签,并且在命令之前按下Cu ,则将在行末尾插入。
此软件包中定义的大多数变量是缓冲区本地的。如果要为多个项目设置它,请使用setQ-default。
phpstan-working-dirPhpstan工作目录的路径。
"/path/to/phpstan.phar"(root . STRING)(root . "path/to/dir")nil(php-project-get-root-dir)作为工作目录。phpstan-config-filePHPSTAN的项目特定配置文件的路径。
phpstan配置文件的绝对路径。(root . STRING)phpstan配置文件的相对路径。(phpstan-get-working-dir)中搜索phpstan.neon(.dist) 。phpstan-level PHPSTAN分析的规则水平。请参阅phpstan的Readme #rule级别。 0是最松散的,您也可以将max用作最高级别的别名。默认级别为0 。
phpstan-executable"/path/to/phpstan.phar"docker(root . STRING)(root . "script/phpstan")(STRING . (ARGUMENTS ...))("docker" "run" "--rm" "-v" "/path/to/project-dir/:/app" "your/docker-image")nilPATH环境变量中项目或可执行命令的作曲家依赖性的phpstan可执行文件。phpstan-flycheck-auto-set-executable在非nil时将flycheck phpstan-phpstan-phpstan否定。
phpstan-memory-limit非nil时使用PHPSTAN内存限制选项。
"1G"nilphpstan-docker-image Docker Image URL或Docker Hub图像名称或零。默认为"ghcr.io/phpstan/phpstan" 。请参阅Docker -PHPSTAN文档和GitHub容器Registory -Package phpstan。