2012-07-06 7 views
0

В PHP 5.3> Можно ли вводить намек на объект с интерфейсом?type hint объект, который реализует интерфейс, а не класс

Как так:

public function AddToFavorite(Trendmed\Interfaces\Favoriteable $entity) {} 

или Im ограничивается только проверкой реализации внутри функции? Я попытался набрать подсказку, как показано выше, и она не работает.

+1

Какая ошибка у вас? – xdazz

ответ

2

Из manual:

PHP 5 introduces type hinting. Functions are now able to force parameters to be objects (by specifying the name of the class in the function prototype), interfaces, arrays (since PHP 5.1) or callable (since PHP 5.4)

Так он может использовать интерфейсы.

+0

Возможно, я что-то делаю, но Im получает ошибку: AddToFavorite :: AddToFavorite() должен быть экземпляром Trendmed \ Interfaces \ Favoriteable, экземпляром прокси \ __ CG __ \ Trendmed \ Entity \ Clinic, данным –

+0

Я думаю, что это beacose Doctrine2 делает эти прокси классы не напрямую реализуют мой интерфейс. Мудак. –

+1

@BartoszRychlicki Итак, это означает, что тип подсказки работает, вы проходите неправильный тип :) – xdazz

Смежные вопросы