Welcome Guest, Not a member yet? Register   Sign In
HMVC Routes: Protected methods result in warning instead of 404
#1

I've been using HMVC modular extensions. I have a base class in which I've defined some protected methods available to all inheriting controller, however I don't want them to be accessible using URL. When trying to access with URL, I get a warning instead of 404 error. It would be great if these could return 404 as I believe only public methods are intended to be available as routes.

Code:
Severity: Warning

Message: call_user_func_array() expects parameter 1 to be a valid callback, cannot access protected method Controller::method()

Filename: core/CodeIgniter.php

Line Number: 532
Reply
#2

(This post was last modified: 06-20-2017, 02:00 PM by Martin7483.)

Maybe you could use the _remap method in your controllers. Have a check in that method that checks if the called method is public.

remapping-method-calls

You could then use something like this

PHP Code:
public function _remap($method$params = array())
{
 
   ifmethod_exists($this$method) )
 
   {
 
       $reflection = new ReflectionMethod(get_class($this), $method);
 
       if$reflection->isPublic() )
 
       {
 
           return call_user_func_array(array($this$method), $params);
 
       }
 
       else
        
{
 
           show_404();
 
       }
 
   }

 
   show_404();

Reply




Theme © iAndrew 2016 - Forum software by © MyBB