Интересно, есть ли способ проверить модификатор доступа метода внутри его класса. Например, я хотел бы использовать ReMap-метод Codeigniter для счета-системы:Проверка модификаторов acces методов
public function _remap($method, $params = array()){
if($this->validation->isValidActiveSession()){
if(method_exists($this, $method))
call_user_func_array(array($this, $method), $params);
else
show_404();
}else{
redirect('login');
}
}
Если я не могу найти правильный сеанс для пользователя, он получает отказ. Я также хочу убедиться, что пользователь, у которого есть соответствующий сеанс, может вызывать только общедоступные методы. К сожалению, method_exists() возвращает true независимо от того, является ли метод общедоступным или закрытым.
У меня уже есть решения для этой конкретной проблемы:
Не используя переназначить и проверить сессию в каждом публичном методе
, используя массив, который хранит доступные методы для действительных пользователей
но он чувствует себя неудобно, поэтому я просто ищу «выгодное» решение.