อินเทอร์เฟซ Emacs ไปยัง PHPStan รวมถึงตัวตรวจสอบสำหรับ 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 )ติดตั้งอิมเมจนักเทียบท่าและ 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 จาก Releases · PHPSTAN/PHPSTAN
ตัวแปรสำหรับ phpstan ส่วนใหญ่จะถูกควบคุมโดยตัวแปรไดเรกทอรี ( .dir-locals.el )
บ่อยครั้ง (root. "path/to/file") สัญกรณ์ปรากฏในตัวแปรเหล่านี้ มันสัมพันธ์กับไดเรกทอรีระดับบนสุดของโครงการ โดยทั่วไปไดเรกทอรีที่มีหนึ่งใน .projectile , composer.json , .git ไฟล์ (หรือไดเรกทอรี) อยู่ในระดับบนสุด
โปรดทราบว่าไดเรกทอรีรูทของโครงการ PHP อาจ ไม่ ตรงกับ %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-default
phpstan-working-dirเส้นทางไปยังไดเรกทอรีการทำงานของ phpstan
"/path/to/phpstan.phar"(root . STRING)(root . "path/to/dir")nil(php-project-get-root-dir) เป็นไดเรกทอรีการทำงานphpstan-config-filePATH ไปยังไฟล์การกำหนดค่าเฉพาะโครงการของ PHPSTAN
phpstan(root . STRING)phpstan จากไดเรกทอรีรูทโครงการ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 โดยการพึ่งพานักแต่งเพลงของโครงการหรือคำสั่งที่เรียกใช้งานได้ในตัวแปรสภาพแวดล้อม PATHphpstan-flycheck-auto-set-executableตั้งค่า flycheck phpstan-executable โดยอัตโนมัติเมื่อไม่ใช่ NIL
phpstan-memory-limitใช้ตัวเลือกการ จำกัด หน่วยความจำ PHPSTAN เมื่อไม่ใช่ NIL
"1G"nilphpstan-docker-image Docker Image URL หรือ Docker Hub ชื่อภาพหรือไม่มี ค่าเริ่มต้นเป็น "ghcr.io/phpstan/phpstan" ดู Docker - เอกสาร PHPSTAN และ GitHub Container Registory - Package PHPSTAN