Как передать в параметрах интерфейса ДТО (или другую сущность)

Есть у меня Сервис который имплементирует интерфейс


class EmployeesService implements ServiceInterface
{

    /**
     * @param EmployeeDTO $data
     * @return JsonResponse
     */
    public function addNewItem(EmployeeDTO $data): JsonResponse
    {
        .....
    }

и сам интерфейс

interface ServiceInterface
{
    public function getList();

    public function getItemById(int $id);

    public function addNewItem(mixed $data);

    public function updateItem(mixed $data, int $id);

}

Возможно ли (обертку добавить или как иначе) описать в интерфейсе метод addNewItem так чтобы он принимал параметр DataTransferObject $data а вот сами реализации методов могли принять дочерний класс (EmployeeDTO) разный в разном случае т.е.:

class EmployeesService implements ServiceInterface
{
    public function addNewItem(EmployeeDTO $data)
    {
        .....
    }
class SomeAnotherService implements ServiceInterface
{
    public function addNewItem(SomeAnotherDTO $data)
    {
        .....
    }

Ответы (0 шт):