ในบทความนี้ เราจะมาเรียนรู้เกี่ยวกับเนมสเปซใน PHP ใน PHP เมื่อเรากำลังสร้างแอปพลิเคชันขนาดใหญ่หรือเมื่อรวมแอปพลิเคชัน/ไลบรารีของบุคคลที่สาม อาจมีโอกาสเกิดการชนกันระหว่างชื่อคลาส ชื่อฟังก์ชัน ดังนั้นเพื่อหลีกเลี่ยงปัญหาเหล่านี้ "เนมสเปซ" ของ PHP จึงเป็นวิธีการจัดกลุ่มคลาส อินเตอร์เฟส ฟังก์ชัน และค่าคงที่ที่เกี่ยวข้อง
มาดูรูปแบบการประกาศเนมสเปซด้านล่างกัน
ไวยากรณ์
<?php namespace MyfirstNamspace { function welcome() { echo 'welcome To Namespace'; } } ?>
ในโลกของ PHP เนมสเปซมีจุดมุ่งหมายเพื่อดูแลปัญหาสองประการที่ผู้สร้างไลบรารีและแอปพลิเคชันต้องประสบเมื่อสร้างส่วนประกอบโค้ดที่นำกลับมาใช้ใหม่ได้ ซึ่งได้แก่:
- 1.ชื่อมีผลกระทบระหว่างโค้ดที่คุณสร้าง และคลาส/ฟังก์ชัน/ค่าคงที่ PHP ภายใน หรือคลาส/ฟังก์ชัน/ค่าคงที่ของบุคคลที่สาม
- 2.ความสามารถในการย่อ Extra_Long_Names เพื่อปรับปรุงความสามารถในการอ่านซอร์สโค้ด
หมายเหตุ:
เนมสเปซได้รับการออกแบบเพื่อแสดงที่อยู่ของไฟล์ในแอปพลิเคชัน บางครั้งเราอาจจำเป็นต้องย่อที่อยู่ ในกรณีนั้น เราสามารถใช้คำหลัก "USE" สำหรับนามแฝงไปยังที่อยู่นั้นได้ มาทำความเข้าใจกับตัวอย่างกัน
<?php namespace SMTP; class Mail{} namespace Mailgun; class Mail{} use SMTP\Mail as SMTPMail; use Mailgun\Mailas MailgunMail; $smtp_mailer = new SMTPMailer; $mailgun_mailer = new MailgunMailer; ?>
คำอธิบาย:
ที่นี่ เรามีสองคลาสที่มีชื่อเหมือนกัน เช่นเดียวกับ Mail ที่มีเนมสเปซต่างกันสองรายการ และถ้าเราต้องการใช้ Mail ทั้งสองคลาสพร้อมกัน เราก็สามารถใช้นามแฝงได้ ภายหลังในโค้ดของคุณ หากเราต้องการเข้าถึงอ็อบเจ็กต์คลาสเหล่านั้น เราก็สามารถนำไปใช้ได้