PhpStorm fully-classified class name from autocomplete

ค่าเริ่มต้นของ phpStorm เวลา enter ชื่อคลาสออกมาจาก autocomplete มันจะไป import class ไว้ที่ด้านบน ( use … ) แล้วกรอกเฉพาะชื่อคลาสให้เราตรงที่กำลังเขียนโค๊ด. แต่ผมชอบที่จะเรียกใช้ fully-classified class name มากกว่า เพราะว่าผมไม่ได้ตั้งชื่อคลาสแบบสื่อความหมายได้ด้วยตัวเอง จะต้องเห็น namespace ด้วย ถึงจะรู้ว่ามันคืออะไร เช่น \App\Models\Orders\Book กับ \App\Models\Products\Book. (ปัญหานี้ผมเดาว่าน่าจะเป็นที่ผมตั้งชื่อคลาสไม่ถูกหลักละมั้ง ._.”). นอกจากสาเหตุที่กล่าวไปแล้ว ยังมีอีกอย่าง คือ เวลาที่ผมไม่ได้ออกแบบล่วงหน้าก่อนทำงาน ผมมักจะต้องมีเหตุให้ย้าย code ไปมาระหว่างไฟล์ ซึ่งปัญหาที่เกิด คือ เวลาที่ย้ายตัว code ไป ตัว import class ด้านบนมันไม่ได้เปลี่ยนตามไปด้วย ดังนั้นการใช้ fully-classified class name ก็ช่วยให้ย้าย code ไปมาได้เลย ไม่ต้องนั่งเช็คตรง import ด้านบน.

ซึ่ง PhpStorm เปิดให้เราปรับได้ว่าจะใช้ fully-classified class name ใน Settings

โดยไปติ๊ก checkbox นี้ออก

คราวนี้บางจุดเราจะมีกิเลสที่อยากจะใช้ auto import สำหรับเวลาเรียกใช้ตรง extends, implement, หรือ use (Trait) เพราะว่า code ส่วนนี้ผมไม่ได้ย้ายมันแน่ๆ หรือบางคลาสที่เป็นของ Framework ที่เค้าตั้งชื่อไว้ดีแล้ว. เราสามารถสั่งให้มันทำ auto-import ให้ได้อยู่ วิธีการคือ หลังจากที่มันใส่ fully-classified class name มาให้เราแล้ว ให้เราคลิก Alt + Enter ตรงคลาสที่เพิ่งแทรกเข้ามา มันจะขึ้น pop-up เล็กๆ ให้เราสั่ง auto-import ให้ได้

อ้างอิง: https://stackoverflow.com/a/22554943

Leave a Reply

Your email address will not be published. Required fields are marked *