Giới thiệu về Namespace trong OOP PHP
Nếu khi chạy script PHP có hai class trùng tên, chúng sẽ xung đột, dẫn đến lỗi nghiêm trọng (fatal error). Điều này thực sự không tiện lắm, vì bạn phải liên tục đảm bảo tính duy nhất của tên.
Ví dụ, hãy xem xét tình huống sau:
bạn có một trang web với người dùng thông thường
và quản trị viên. Trong thư mục users lưu trữ
các class cho người dùng, còn trong thư mục admin
là các class cho quản trị viên.
Giả sử cả người dùng và quản trị viên đều cần một
class Page nào đó, chịu trách nhiệm về một số
trang của trang web. Khi đó, người dùng sẽ có
class riêng của họ, còn quản trị viên có class riêng. Trong
trường hợp như vậy, chúng ta sẽ gặp phải xung đột tên.
Cách đơn giản nhất để giải quyết xung đột này
là đặt tên khác nhau cho các class, ví dụ:
UsersPage và AdminPage. Tuy nhiên,
con đường này dần dẫn đến việc xuất hiện
những tên class rất dài.
Trong PHP tồn tại một cách khác để giải quyết vấn đề - đó là namespace. Ý tưởng như sau: mỗi class có thể thuộc về một namespace nào đó và tính duy nhất của tên class chỉ cần được tuân thủ bên trong namespace đó.
Tức là, để giải quyết vấn đề của chúng ta, chúng ta có thể
làm như sau: đưa một class Page
vào một namespace nào đó, ví dụ:
Users, còn class Page thứ hai
đưa vào một namespace khác, ví dụ:
Admin.