У меня есть классы в двух разных пространствах имен, например:
Контроллер находится в \ Core, индекс находится в \ Public
В моем index.php у меня есть class_alias для всех классов \ Core, поэтому вы можете вызывать их напрямую: $controller = new Controller();
. Это работает без проблем.
Моя проблема в том, что я пытаюсь расширить класс. Поскольку индекс и контроллер находятся в разных пространствах имен, он пытается найти контроллер в пространстве имен \ Public, поэтому это не сработает:
<?php
namespace Panel\Pub;
class Index extends Controller {
Есть ли способ обойти это, чтобы я мог использовать псевдоним класса в функции extends? Я знаю, что могу использовать \ Core \ Controller, и он будет работать, но я пытаюсь использовать псевдонимы, чтобы сделать основные функции более доступными.
Изменить: найдено одно обходное решение. Проведя еще несколько тестов, я обнаружил, что использование \ перед псевдонимом в расширении, похоже, работает. Не так идеально, как no \, но на данный момент лучшее решение приводит к:
class Index extends \Controller { }
Все еще ищу другие советы по обходному пути или другому методу расширения контроллера.
Спасибо!