Namespace gom nhóm class, interface, function, constant để tránh xung đột tên khi tích hợp thư viện thứ 3 hoặc dự án lớn.
Cú pháp
<?php
namespace MyFirstNamespace {
function welcome() { echo 'Welcome To Namespace'; }
}
?>
Hai vấn đề namespace giải quyết
- Xung đột tên giữa code của bạn, PHP core, và thư viện thứ 3.
- Rút gọn tên dài (alias) để code dễ đọc.
Ví dụ alias với use
<?php
namespace SMTP { class Mail {} }
namespace Mailgun { class Mail {} }
use SMTP\Mail as SMTPMail;
use Mailgun\Mail as MailgunMail;
$m1 = new SMTPMail();
$m2 = new MailgunMail();
?>
Hai class Mail trùng tên, khác namespace. Dùng use ... as đặt bí danh để dùng cùng lúc.