Intereting Posts
Как включить текстовый файл в PHP как PHP, без печати на страницу? Использование PHP, поиск в архивных почтовых сообщениях Gmail Все комбинации без повторений с определенной мощностью Как установить переменную allow_url_fopen в файл .htaccess или php? Нужна помощь в создании динамического меню Symfony2 – Как использовать __construct () в контроллере и получить доступ к Securty.Context? Масштабирование изображения с использованием PHP и поддержание соотношения сторон Force PHP дождаться завершения действия базы данных перед продолжением Отправить данные формы с помощью jquery 'ajax' и html form 'action' Как проверить целочисленные значения, чтобы избежать SQL-инъекций? обрезка строки в php Лучший способ хранения JSON в атрибуте HTML? Строковая переменная Javascript, содержащая PHP-код Неустранимая ошибка: класс «Монго» не найден в xampp PHP-шрифт-lib должен либо быть установлен через композитор, либо скопирован в lib / php-font-lib

Какая польза от пространств имен в PHP?

Какая польза от пространств имен в PHP? Я работал над несколькими системами MVC и не нашел для них много пользы. Я читаю о них здесь … это проблема вроде того, что я никогда не использовал их? Это то, что является хорошим стандартом кодирования, который всегда используется?

Related of "Какая польза от пространств имен в PHP?"

Как и любые другие языки, пространства имен позволяют двусмысленным именам / классам с одинаковым именем сосуществовать, находясь в двух разных пространствах имен.

Например, класс Table может ссылаться на таблицу в постоянной базе данных и на таблицу HTML. Я могу помещать пространства имен в конкретную таблицу, которую я хочу, т. Е. \Model\Table и \View\Table соответственно.

Пространство имен является частью хорошей практики ООП. Они действительно полезны в большом веб-приложении, потому что они помогают избежать двусмысленности между классами. Это способ организовать ваше приложение и сделать его более читаемым.

Основное преимущество пространств имен обычно происходит не из кода вашего собственного приложения, а из сторонних библиотек . Сторонники библиотек могут выбирать соответствующие пространства имен для своего собственного кода и гарантировать, что конфликты имен не будут совпадать с вашими собственными.

Это помогает избежать коллизий имен. Например, если у вас есть два пакета, и у каждого есть класс с именем Client (или что-то общее подобное), это приведет к столкновению имен. Перед PHP 5.3 решение избежать этих столкновений состояло в том, чтобы использовать имена классов следующим образом: VendorName_PackageName_Classname

Как вы видите, это не слишком приятно. Но теперь с PHP 5.3 вы можете использовать пространства имен, чтобы придумать более чистые имена классов.

Представьте, что у вас есть огромная база кода, с тысячами функций, классов и большого количества стороннего кода. И теперь две функции имеют одно и то же имя.

Вот куда входят пространства имен – путем упаковки вашего кода в пространства имен, вы можете исключить возможность столкновения имен.

Кроме того, пространства имен помогают вам структурировать ваш код – все, что принадлежит определенной функции или подсистеме, входит в одно пространство имен.

Это также поможет вашему коду стать более гибким и чистым. При сравнении, Zend_Database_Adapter_Mysql vs Zend / Database / Adapter / Mysql равен, чтобы избежать неоднозначных имен.

  // use namespace use Zend/Database/Adapter/Mysql as DbAdapter; $dbAdapter = new DbAdapter; // use naming convention $dbAdapter = new Zend/Database/Adapter/Mysql; 

При использовании пространства имен, если адаптер изменен, ваш код не будет изменен слишком много. Все действия изменяются только командой use. Обратите внимание, что, например, шаблон фабричного метода не должен заботиться.