Antarmuka Emacs ke Phpstan, termasuk pemeriksa untuk 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 )Instal Docker dan gambar phpstan/phpstan.
Jika Anda selalu menggunakan Docker untuk phpstan, tambahkan yang berikut ke dalam file .emacs Anda (~~/.emacs.d/init.el ~)
( setq-default phpstan-executable 'docker ) Masukkan yang berikut ini ke dalam file .dir-locals.el pada direktori root proyek.
(( 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 ))))Jika komposer proyek Anda bergantung pada phpstan, Anda tidak perlu mengatur apa pun.
(( 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 ))))Harap instal paket phpstan/phpstan untuk setiap lingkungan atau proyek dengan menggunakan komposer.
Jika Anda tidak terbiasa dengan dependensi menyelesaikan, perintah shell berikut direkomendasikan.
$ composer global require phpstan/phpstanPEMBERITAHUAN : PHPSTAN/PHPSTAN-SHIM sudah usang. Harap baca phpstan 0.12 dirilis!.
Perhatikan : phpstan.el membutuhkan phpstan ** 0.10+**. Kami sangat merekomendasikan menggunakan PHPSTAN terbaru.
Silakan unduh phpstan.phar dari rilis · phpstan/phpstan.
Variabel untuk phpstan terutama dikendalikan oleh variabel direktori ( .dir-locals.el ).
Notasi sering (root. "path/to/file") muncul dalam variabel -variabel ini. Ini relatif terhadap direktori tingkat atas proyek. Secara umum, direktori yang berisi salah satu file .projectile , composer.json , .git (atau direktori) berada di tingkat atas.
Perlu diketahui bahwa direktori root dari proyek PHP mungkin tidak cocok dengan %rootDir% PhPSTAN dan/atau %currentWorkingDirectory% .
Biasanya, Anda akan mengatur .dir-locals.el berikut.
(( 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 )))) Jika ada file phpstan.neon di direktori root proyek, Anda tidak perlu mengatur file phpstan-working-dir dan phpstan-config-file .
Paket ini memberikan perintah yang nyaman untuk menggunakan Phpstan dari Emacs.
phpstan-insert-dumptype Tambahkan PHPStandumpType(...); ke kode PHP Anda dan menganalisisnya untuk membuat phpstan menampilkan jenis ekspresi.
(Define-key PHP-Mode-Map (KBD "CC ^") #'PHPSTAN-INSERT-DUMPTYPE)
Secara default, jika Anda menekan Cu sebelum meminta perintah, PHPStandumpPhpDocType() akan dimasukkan.
Fitur ini ditambahkan dalam phpstan 1.12.7 dan akan membuang jenis yang kompatibel dengan tag @param dan @return phpDoc.
phpstan-insert-ignore Sisipkan tag @phpstan-ignore untuk menekan kesalahan phpstan pada baris saat ini.
Secara default itu memasukkan tag pada baris sebelumnya, tetapi jika sudah ada tag di akhir baris saat ini atau pada baris sebelumnya, pengidentifikasi akan ditambahkan di sana.
Jika tidak ada tag yang ada dan Cu ditekan sebelum perintah, itu akan dimasukkan di akhir baris.
Sebagian besar variabel yang didefinisikan dalam paket ini adalah buffer lokal. Jika Anda ingin mengaturnya untuk beberapa proyek, gunakan SetQ-Default.
phpstan-working-dirJalur ke direktori kerja PhPstan.
"/path/to/phpstan.phar"(root . STRING)(root . "path/to/dir")nil(php-project-get-root-dir) sebagai direktori kerja.phpstan-config-filePath to Project file konfigurasi spesifik phpstan.
phpstan .(root . STRING)phpstan dari direktori root proyek.phpstan.neon(.dist) di (phpstan-get-working-dir) .phpstan-level Level aturan analisis phpstan. Silakan lihat tingkat readme #rule dari phpstan. 0 adalah yang paling longgar dan Anda juga dapat menggunakan max sebagai alias untuk level tertinggi. Level default adalah 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 oleh dependensi komposer dari proyek atau perintah yang dapat dieksekusi dalam variabel lingkungan PATH .phpstan-flycheck-auto-set-executableAtur Flycheck Phpstan-Executable secara otomatis saat non-nol.
phpstan-memory-limitGunakan opsi batas memori phpstan saat non-nol.
"1G"nilphpstan-docker-image URL gambar Docker atau nama gambar hub Docker atau nol. Default sebagai "ghcr.io/phpstan/phpstan" . Lihat Docker - Dokumentasi Phpstan dan Registory Container GitHub - Paket Phpstan.