บริษัท ของฉันสร้างกรอบ PHP แบบแยกส่วนในช่วงหลายปีที่ผ่านมาเริ่มต้นนานก่อนที่ PHP จะเพิ่มเนมสเปซ 5.3 เมื่อเร็ว ๆ นี้เราตัดสินใจที่จะเริ่มใช้เนมสเปซในรหัสใหม่ของห้องสมุด อย่างไรก็ตามเรามีปัญหาเล็ก ๆ น้อย ๆ ที่เราพยายามหาว่าการเพิ่มเนมสเปซลงในโค้ดเบส pre-v5.3 นั้นไม่ใช่ความคิดที่ดีหรือไม่:
- ฉันสามารถเนมสเปซคลาส แต่ยังอิมพอร์ต (ใช้) โกลบอลเนมสเปซเพื่อให้คลาสโกลบอลทั้งหมดไม่ต้องการ
\
คำนำหน้าได้หรือไม่? - หากเรากำหนดคลาสที่มีอยู่ในห้องสมุดของเราเราจะป้องกันไม่ให้โครงการที่มีอยู่ทั้งหมดแตกหักทันทีที่การอัพเกรดเฟรมเวิร์ก ตัวอย่างเช่นไลบรารีสามารถเปลี่ยนชื่อของคลาส
ThemeEngine
เป็น\module\theme\ThemeEngine
แต่เว็บไซต์ที่มีอยู่โทรออกThemeEngine
โดยไม่มีการแก้ไขรหัสใด ๆ ถ้าเป็นเช่นนั้นรหัสนั้นจะเป็นอย่างไร