У меня есть класс с именем Service_B
, который расширяет собственный класс обслуживания.Как использовать пространство имен в конструкторе родительского класса
Этот настраиваемый класс услуг требует, чтобы один объект с именем Reader
находился в его __construct()
, чтобы правильно создать экземпляр.
Родитель служба определяется как следовать
namespace Vendor\Services;
abstract class Service{
function __construct(Vendor\Services\Reader $reader){
}
}
Service_B
определяется следующим образом:
namespace Vendor\Services;
class Service_B extends Service{
function __construct(){
parent::__construct(new \Vendor\Services\Reader());
}
}
Reader
сделать имеют следующую строку в верхней части файла:
use Vendor\Services;
Файлы классов организованы следующим образом:
Vendor/Services/Service_B.php
Vendor/Services/Reader.php
Вопрос: Когда я создаю экземпляр SERVICE_B, я получаю следующее сообщение об ошибке:
Fatal error: Class 'Vendor\Services\Reader' not found
Я не понимаю, почему я получаю эту ошибку, так как я думаю, что я использую правильные пространства имен деклараций. Спасибо вам
Да Service_B extends Service Я сохранил исправленное исправленное сообщение – Vincent
Спасибо, заменив 'use' на 'namespace' исправленной проблемой. – Vincent