Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Как избежать невозможности повторного объявления класса для 2 разных классов с одинаковым именем

Автор вопроса: fehrlichОтветов: 3

Я пытаюсь включить некоторые функции с доски phpBB в свое приложение, например, один логин. Но если я включаю common.php, он говорит: "Невозможно повторно объявить пользователя класса", потому что в моем приложении уже есть пользователь класса. Есть ли способ избежать этого? Я немного пробовал с пространствами имен, но так и не работал с ними.

Поэтому мне нужен способ включить 2 класса с одинаковым именем.

phpclassnamespacesinclude

Ответы

Ответ 1 · рейтинг 3 · Bart van Heukelom

Пространства имен - единственный способ.

Ответ 2 · рейтинг 3 · lonesomeday

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

Хорошей общей привычкой является пространство имен ваших классов по привычке. Если вы посмотрите, например, на пакеты Zend, вы увидите, что каждое имя класса имеет префикс Zend_, например. Zend_Mail, Zend_Mime, Zend_Mime_Part. Это означает, что (а) существует логическая связь между классами, имеющими связанные функции, и (б) маловероятно, что классы будут конфликтовать с созданными вами или другой структурой. Этому шаблону следуют другие проекты, такие как PEAR.

Это требование устарело с появлением PHP 5.3. Однако версия 5.3 еще не получила широкого распространения, особенно среди провайдеров виртуального хостинга, и это решение вполне может подойти для вашей текущей ситуации.

Ответ 3 · рейтинг -4 · Your Common Sense

Просто переименуйте свой класс. не так уж и важно

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы