[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Fatal declaration error
McLotos
Всем привет!
Имеется абстрактный класс
Lotos\Core\Abstractions\Route
Есть интерфейс, который его использует
namespace Lotos\Core\Interfaces;
use Lotos\Core\Abstractions\Route;
interface RouteResolver {
public function resolve(Route $route);
}

И есть объект, реализующий этот интерфейс
namespace Lotos\Core\Wanderer;
use Lotos\Core\Interfaces\RouteResolver as RouteResolverInterface;
class Resolver implements RouteResolverInterface {
public function resolve(Route $route) {
}
}

Получаю ошибку
Declaration of
Lotos\Core\Wanderer\Resolver::resolve(Lotos\Core\Wanderer\Route $route)
must be compatible with
Lotos\Core\Interfaces\RouteResolver::resolve(Lotos\Core\Abstractions\Route $route)
Получается что объект, который приходит в resolve, обязательно должен быть Abstraction? Это никак нельзя обойти?

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
kaww
Цитата (McLotos @ 30.07.2018 - 12:47)
И есть объект, реализующий этот интерфейс

Не реализует, т.к. должен быть Lotos\Core\Abstractions\Route а не Lotos\Core\Wanderer\Route
Цитата (McLotos @ 30.07.2018 - 12:47)
Получается что объект, который приходит в resolve, обязательно должен быть Abstraction?

Не обязательно, может расширять Abstraction. У тебя же проблема в том, что Lotos\Core\Wanderer\Resolver не совместим с интерфейсом, который "реализует".
McLotos
Просто странно что Lotos\Core\Wanderer\Route
namespace Lotos\Core\Wanderer;
use Lotos\Core\Abstractions\Route as AbstractRoute;
class Route extends AbstractRoute

не подходит под определение

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
SlavaFr
ПХП ясно пишет, что ему не нравится.
Просто перекинь use Lotos\Core\Abstractions\Route; из Lotos\Core\Interfaces\RouteResolver в Lotos\Core\Wanderer\Resolver

_____________
↓↓↓↓↓↓↓↓↓↓
ответ может быть здесь
или в mysql_error();
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.