Я пытаюсь построить класс, чтобы соединить mybb и WordPress.
Когда я включаю функции mybb в WordPress, есть пара, которые имеют одно и то же имя, и это создает ошибки PHP.
Можно ли как-нибудь включить источник mybb, но просто передать переменные в основной скрипт без ошибок выброса WordPress? По сути, мне нужна функция, которая включает в себя источник mybb, а также позволяет передавать переменные в него, но сохраняет включенный файл изолированным, чтобы а не вызывать конфликты с функциями WordPress, которые имеют одно и то же имя.
Я — разработчик PHP, и я относительно знаком с тем, как работает ООП, но далеко от эксперта, я пойму все решения, которые кто-нибудь имеет, хотя. Я построил класс, но я застрял с проблемой имен функций
Два абсолютно одинаковых имени функции в одном и том же классе действительно недопустимы в 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
Других решений пока нет …