Введение в пространства имен в ООП в PHP
Если при запуске PHP скрипта будут два класса с одинаковыми именами, то они вступят в конфликт, что приведет к фатальной ошибке. Это на самом деле не очень удобно, так как постоянно приходится следить за уникальностью имен.
Для примера рассмотрим следующую ситуацию:
у вас есть сайт, на котором есть пользователи
и админ. При этом в папке users
хранятся
классы для юзеров, а в папке admin
- классы для админа.
Пусть и для юзеров, и для админа нужен некий
класс Page
, отвечающий за какие-то
страницы сайта. При этом для юзеров будет
свой класс, а для админа - свой. В таком
случае нас и поджидает конфликт имен.
Самый простой способ решения этого конфликта
- дать отличающиеся имена классам, например,
UsersPage
и AdminPage
. Этот
путь, однако, постепенно ведет к появлению
очень длинных имен классов.
В PHP существует и другой путь решения проблемы - пространства имен. Суть в следующем: каждый класс может относится к какому-то пространству имен и при этом уникальность имен классов должна соблюдаться только внутри этого пространства.
То есть, для решения нашей проблемы мы можем
сделать следующее: отнести один класс Page
к какому-нибудь пространству имен, например,
Users
, а второй класс Page
отнести к другому пространству имен, например,
Admin
.