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。