Translations:Developers/Object oriented programming in PHP/Methods/24/ru

То же самое справедливо для метода saveItem, требующего объект типа MShop_Common_Item_Interface. Так все реализации этого интерфейса будут восприняты методом. Но этот интерфейс реализуется всеми классами item всех доменов, и, как следствие, все item пройдут тест подсказки типа. Причина, по которой этот общий интерфейс выбран в качестве типа, в том, что методы, общие для всех менеджеров должны иметь идентичные параметры в подписи, так как всеми менеджерами дополняется тот же абстрактный класс и те же интерфейсы реализуются, тем самым они легко контролируются. Чтобы избежать обработки элементов из других доменов, используется простое условие if на принадлежность item (элемента) к нужному типу, в данном случае к MShop_Product_Item_Interface.