Công ty của tôi đã tạo ra một khung công tác PHP mô-đun trong nhiều năm, bắt đầu từ lâu trước khi PHP 5.3 thêm các không gian tên. Gần đây, chúng tôi đã quyết định bắt đầu sử dụng các không gian tên trong mã mới của thư viện và cuối cùng chúng tôi dự định sẽ không gian tên mã cũ. Tuy nhiên, chúng tôi có một vài vấn đề chúng tôi đang cố gắng xác định xem việc thêm các không gian tên vào một cơ sở mã trước v5.3 không phải là một ý tưởng hay:
- Tôi có thể đặt tên cho một lớp nhưng cũng có thể nhập (sử dụng) không gian tên toàn cục để tất cả các lớp toàn cầu không cần
\
tiền tố không? - Nếu chúng ta đặt tên cho một lớp hiện có trong thư viện của mình, làm thế nào chúng ta có thể ngăn chặn tất cả các dự án hiện tại phá vỡ ngay khi nâng cấp khung? Ví dụ, thư viện có thể thay đổi tên của lớp
ThemeEngine
thành\module\theme\ThemeEngine
, nhưng các trang web hiện có gọiThemeEngine
mà không có bất kỳ sửa đổi mã nào không? Nếu vậy, mã đó sẽ trông như thế nào?