Пространства имен PHP - более эффективные основные функции? - PullRequest
2 голосов
/ 20 февраля 2011

Я закончил читать о пространствах имен, и на ум приходит одно из самых практических применений.

Если пространства имен можно использовать для предотвращения столкновения с основными функциями PHP, я полагаю, что кто-то в какой-то момент создал библиотеку, которая имеет более быстрые основные функции?

Так, например, скажем, strtotime () очень медленно работает в PHP. Кто-то говорит: «О, вот почему он медленный, у него есть все эти функции, которые нужны не всем!» и выпускает более эффективную версию strtotime, которая не имеет конфликтов из-за пространств имен.

Существует ли что-то подобное? Я полностью пропустил точку пространства имен?

Редактировать: Спасибо, ребята.

Ответы [ 3 ]

3 голосов
/ 20 февраля 2011

Смысл пространств имен состоит не в том, чтобы избежать коллизий с именами функций PHP, а в том, что касается другого кода PHP.Например, если вы используете чужую библиотеку шаблонов, у которой есть класс с именем Template, вы также не сможете создать ее самостоятельно, даже если это лучшее имя для создаваемого вами класса.В пространствах имен все имена ваших классов существуют в своем собственном пузыре.Таким образом, вы можете иметь \ MyLibrary \ Template и \ OtherLibrary \ Template.

3 голосов
/ 20 февраля 2011

Почему нативный метод, такой как strtotime, будет медленнее, чем его встроенная версия PHP, если только он не будет крайне неэффективным (в этом случае нативный метод, вероятно, будет обновлен)?

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

http://www.codinghorror.com/blog/2008/12/hardware-is-cheap-programmers-are-expensive.html

2 голосов
/ 20 февраля 2011

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

SPL предоставляет улучшенные библиотеки, но использует классы для организации.

Если вы спросите меня, главная проблема основной библиотеки PHP - это не производительность в любом случае - большинство функций в любом случае являются просто интерфейсами со своими аналогами C или операционной системы. Что еще более актуально, так это соглашения об именах и порядок параметров (проблемы, которые могут , тем не менее, также могут быть решены с использованием подхода пространства имен)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...