Работаю над MVC системой, где все контроллеры наследуются от одного базового класса.Есть два способа вызова методов других контроллеров - из основного потока и из других контроллеров.Необходимо запретить явный вызов private методов из основного потока,но при этом разрешить вызов из-под других контроллеров.Написал примерный код, где BaseA - базовый класс, ChildB - один из контроллеров.Не удаётся вызвать private метод дочернего класса.Как заставить ЭТО работать? Или может есть другое решение?class BaseA { public function call($method) { $this->$method(); }}class ChildB extends BaseA { private function alert() { echo 'alert called'; }}$obj = new ChildB();$obj->call('alert');Если из класса BaseA вызвать следующий код, то он укажет, что вызов был сделан из дочернего класса.Однако вызов метода дочернего опять же не срабатывает. public function call($method) { echo get_class($this); }
|