Включите в класс файл, содержащий функции с одинаковыми именами

Я пытаюсь построить класс, чтобы соединить mybb и WordPress.

Когда я включаю функции mybb в WordPress, есть пара, которые имеют одно и то же имя, и это создает ошибки PHP.

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

Я — разработчик PHP, и я относительно знаком с тем, как работает ООП, но далеко от эксперта, я пойму все решения, которые кто-нибудь имеет, хотя. Я построил класс, но я застрял с проблемой имен функций

0

Решение

Два абсолютно одинаковых имени функции в одном и том же классе действительно недопустимы в PHP. Тем не менее, начиная с PHP5 вы можете использовать пространства имен. Следовательно, вы можете иметь одно и то же имя класса, с теми же именами функций, но с другим пространством имен (основанием).

Что вы можете сделать, это создать пространство имен для mybb-класса и пространство имен для WordPress-класса. Выглядит примерно так:

----
#file1.php full name is \mybb\ClassX
namespace \mybb;

class ClassX
{
.. implementation ..

public function SameName($a, $b)
{
}
}

----
#file2.php full name is \wordpress\ClassX
namespace \wordpress;
use \mybb\ClassX;

class ClassX
{
.. implementation ..

public $mybbClass;

public function ClassX()
{
$mybbClass = new \mybb\ClassX();
$mybbClass->FunctionWithSameName(1, 2);
}
public function FunctionWithSameName($a, $b)
{
}
}

Смотрите эту ссылку для полной информации об использовании пространств имен:
http://php.net/manual/en/language.namespaces.php

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]