Интерфейс EMACS до PHPSTAN, включает в себя Checker для 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.phar из релизов · Phpstan/Phpstan.
Переменные для 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 .
Этот пакет предоставляет удобные команды для использования Phpstan из Emacs.
phpstan-insert-dumptype Добавить PHPStandumpType(...); к вашему PHP -коду и проанализируйте его, чтобы PHPSTAN отобразил тип выражения.
(Define-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-Defaul.
phpstan-working-dirПуть к рабочему каталогу Phpstan.
"/path/to/phpstan.phar"(root . STRING)(root . "path/to/dir")nil(php-project-get-root-dir) в качестве рабочего каталога.phpstan-config-filePATH to Project Configuration File Phpstan.
phpstan .(root . STRING)phpstan из каталога Project Root.phpstan.neon(.dist) в (phpstan-get-working-dir) .phpstan-level Правило уровня анализа PHPSTAN. Пожалуйста, смотрите readme #rule уровней Phpstan. 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")nilphpstan FILE с помощью зависимостей композитора проекта или исполняемой команды в переменной среды PATH .phpstan-flycheck-auto-set-executableУстановите Flycheck Phpstan, необходимый автоматически, если не-ноль.
phpstan-memory-limitИспользуйте опцию ограничения памяти PHPSTAN, если не-ноль.
"1G"nilphpstan-docker-image Docker Image URL или Docker Hub Имя изображения или ноль. По умолчанию как "ghcr.io/phpstan/phpstan" . См. Docker - документация Phpstan и контейнер Github Registory - Пакет Phpstan.