есть проект, который мне нужно расширить. Все классы находятся в отдельных файлах, мне нужно расширить некоторые классы, не переписывая существующий код в другие файлы. Моя идея состояла в том, чтобы использовать пространства имен, но я терпел неудачу. Вот пример:
Я переименовал исходный файл класса A.php в A_Original.php :
class A
{
public function hello()
{
echo "hello world from Class A\n";
}
}
Затем создал новый A.php :
namespace AOriginal {
include 'A_Original.php';
}
namespace {
class A
{
public function hello()
{
echo "hello world from Class A Extended\n";
}
}
}
Это невозможно, потому что в including
исходном файле A_Original.php класс выгружается в глобальную область (таким образом игнорируя команду пространства имен).
Я не могу изменить существующий код в файле A_Original.php, но переименование в порядке.
Другие файлы проекта (которые я не могу изменить) используют require "A.php"
.
Как это сделать?