Пространства имен в PHP

Начиная с версии 5.3, в PHP появился практичный и важный инструмент, активно использующийся в других языках программирования — пространство имен или namespace. Позволяет организовать код в определенную виртуальную иерархию, сравнимую со способом формирования каталога.
Каждый современный фреймворк или компонент организует код в соответствие со своим уникальным пространством имен, действующим на глобальном уровне. Это необходимо для исключения конфликтов с именами классов, которые используются другими разработчиками.
Пространства имен в широком смысле являются одним из способов инкапсуляции. PHP поддерживает все ключевые механизмы объектно-ориентированного программирования. Их всего три:
- Инкапсуляция.
- Полиморфизм.
- Наследование
В информатике и программировании инкапсуляция означает выделение ключевого содержания, путем помещения второстепенного в некий условный контейнер. При этом должна обеспечиваться доступность этого ключевого содержания. Примером может выступить способ организации файлов во многих операционных системах. В них директории имеют функции группировки связанных файлов, выступая в виде пространства имен. Так, файл new.txt может находиться сразу в нескольких папках /home/user и /home/downloads. Однако два файла new.txt с одинаковым названием не могут лежать в одной папке.
Также и в PHP не может быть два одинаковых по названию класса — все они должны быть уникальными. И если используется сторонняя библиотека или чужой код, то сложно отвечать за все названия классов, чтобы они не повторялись со своими собственными. Пример объявления пространства имен: "namespace MyFramework/Component/Search;".
Объявление пространства имен всегда помещается с новой строчки кода сразу же после открывающего тега
По вложенности это действительно схоже с привычной иерархией файловой системы, но стоит помнить, что пространство имен — виртуальное понятие. С технической стороны пространства имен — всего лишь система обозначений для языка программирования, позволяющая получить общие префиксы имен классов, констант, функций и интерфейсов.
Понравилась статья?
Тогда поделитесь ею с друзьями и подпишитесь на новые интересные статьи.
Поделиться с друзьями:
Подписаться на новые статьи:
Поддержите пожалуйста мой проект!
Если у Вас есть какие-то вопросы или предложения, то можете писать их в комментариях или мне на почту sergiu1607@gmail.com. И если Вы заметили какую-то ошибку в статье, то прошу Вас, сообщите мне об этом, и в ближайшее время я всё исправлю.
Добавляйтесь ко мне в друзья в:
Добавляйтесь в мои группы:
Подпишитесь на мои каналы:
Автор статьи: Мунтян Сергей
Копирование материалов с сайта sozdatisite.ru ЗАПРЕЩЕНО!!!
Дата добавления: %date%