Я хотел бы знать, будет ли класс отвечать на определенный метод, но я хочу знать, прежде чем создавать экземпляр класса. Это возможно?Можно ли узнать, вызывает ли класс метод, не создавая его?
Пример: класс Controller_Index
звонит $this->composite('SomeCompositeClass')
в пределах своего __construct()
метода. Класс SomeCompositeClass
имеет метод helloWorld()
. Я хочу посмотреть, могу ли я позвонить Controller_Index->helloWorld()
.
В принципе, я хочу посмотреть, будет ли мой контроллер добавлять какие-либо составные классы (используя $this->composite()
), чтобы я мог проверить, содержат ли эти составные классы метод, который я запрашиваю (helloWorld()
). И я хотел бы сделать это, не создавая вначале Controller_Index
.
Спасибо!
Редактировать
Я полагаю, что я хочу сделать, это похоже на использование классов Reflection PHP, чтобы увидеть, если метод класса существует. Но я не хочу знать, существует ли метод, я хочу знать, вызывает ли класс его.
Edit 2
Интерфейсы не поможет, потому что я не обязательно позвонит $this->composite()
от каждого контроллера.
Возможно, мне просто нужно переосмыслить проблему и пойти другим путем.
Я не хочу вызывать метод без первого экземпляра класса, я хочу, чтобы класс WILL вызывал метод. –