PHP chaining

Здравствуйте!
Наверняка многие из вас знакомы с Zend Framework и знают об использовании метода цепочек в классах у него. Мне бы хотелось знать, можно ли каким-то волшебным образом реализовать класс на php таким образом, чтобы… Чтобы я наследовался от этого класса, писал свои методы и мой волшебный класс реализовывал цепочку, то есть вызывал мой метод, обрабатывал и сам возвращал $this. Это не лень писать лишнюю строку — пока это просто интерес. Важно, чтобы мне не приходилось давать методам класса каких-либо префиксов или чего-то похожего.
  • Вопрос задан
  • 2836 просмотров
Пригласить эксперта
Ответы на вопрос 3
gaelpa
@gaelpa
public function __call($method,$args){
   if (!in_array($method,$this->publicChainingMethods)) return null;
   call_user_func_array ( array($this,$method.'_real') , $args );
   return $this;
}

типа того?
Ответ написан
xmdy
@xmdy Автор вопроса
Все просто, для работы __call на существующих функциях их достаточно сделать private или protected, и они будут доступны для вызова, но! Тогда появляется дырка в безопасности — вы можете вызывать любые методы. Как решить проблему?
Ответ написан
xmdy
@xmdy Автор вопроса
Лучше успокоиться и просто делать какой-нибудь префикс?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы