Передан конкретный класс вместо класса с реализованным интерфейсом Stack Overflow

Я не могу понять, почему я получаю эту ошибку:
Аргумент 1, передаваемый в App \ src \ Manager :: manage (), должен быть экземпляром App \ src \ ManageableInterface, заданным экземпляром App \ src \ Worker.
Я закодировал интерфейс ManageableInterface не для конкретного класса, но он не работает. Вот код:

ManageableInterface.php

<?php namespace App\src\interfaces;

interface ManageableInterface
{
public function manage();
}

SleepableInterface.php

<?php namespace App\src\interfaces;

interface SleepableInterface
{
public function sleep();
}

WorkableInterface.php

<?php namespace App\src\interfaces;

interface WorkableInterface
{
public function work();
}

Worker.php

<?php namespace App\src;

use App\src\interfaces\{WorkableInterface, SleepableInterface, ManageableInterface};

class Worker implements WorkableInterface, SleepableInterface, ManageableInterface
{
public function work()
{
var_dump('Worker is working.');
}


public function sleep()
{
var_dump('Worker is sleeping.');
}


public function manage()
{
$this->work();
$this->sleep();
}

}

Manager.php

<?php namespace App\src;

class Manager
{
public function manage(ManageableInterface $worker)
{
$worker->manage();
}
}

index.php

<?php require 'vendor/autoload.php';

use App\src\{Manager, Worker};

$worker = new Worker();

$manager = new Manager();
$manager->manage($worker);

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector