Беда в раю с пространствами имен.Класс доступен в методах, но не на расширяемых - PullRequest
0 голосов
/ 24 сентября 2018

У меня проблемы с пониманием поведения при импорте.Позвольте мне объяснить, у меня есть класс B вне любого пространства имен (по какой-то причине у меня двойная автозагрузка, проприетарная и классическая PSR-4, я думаю, это может иметь какое-то отношение к моей проблеме, я готовсобрать больше информации об этом лакомом при необходимости).В этом классе я импортирую класс A из пространства имен, и получается, что в методе моего дочернего класса я могу использовать класс A для создания экземпляра объекта, но когда я пытаюсь сказать классу B расширить класс A, он говорит:FQN не найден.

<?php
use \App\Services\AbstractController as BaseController;

class BarController extends BaseController
{

    public function test() {
        $foo = new BaseController();
    }
}

В строке «class BarController extends BaseController» появляется сообщение об ошибке, в котором говорится, что BaseController не может быть найден, но если я удаляю часть extends, будет запущен тестовый методплавно с его реализацией (я пытался манипулировать объектом, он, безусловно, хорошо работает).

поэтому я предполагаю, что мой вопрос заключается в том, есть ли разница в обработке класса для расширения по сравнению с использованием его для создания экземпляраобъект.

Заранее спасибо за ваши мысли, и я готов ответить на любой дополнительный вопрос.

1 Ответ

0 голосов
/ 25 сентября 2018

Мне удалось решить проблему.Класс контроллера был создан внутри проприетарного автозагрузчика, но метод был вызван позже в процессе.Я переключил оба порядка автозагрузчика (т.е. сначала psr-4, а затем проприетарный) в init, и он хорошо работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...