CodeIgniter Forums
Call to undefined (helper) function - Printable Version

+- CodeIgniter Forums (https://forum.codeigniter.com)
+-- Forum: CodeIgniter 4 (https://forum.codeigniter.com/forum-28.html)
+--- Forum: CodeIgniter 4 Support (https://forum.codeigniter.com/forum-30.html)
+--- Thread: Call to undefined (helper) function (/thread-76129.html)



Call to undefined (helper) function - Gary - 04-15-2020

Hello,

I have a helper function which is loaded in BaseController.php in the normal way with protected $helpers = ['myhelper,].

It is used to add some text details to a view and has been faithfully working without a problem until recently…

Now, when I have any exception thrown, for example:  CodeIgniter\Images\Exceptions\ImageException: The supplied file is not a supported image type (though, any exception/error condition appears to cause the same effect), I receive the following (code terminating) response on any subsequent interaction with the server:  Error: Call to undefined function myhelperFunction() (which is the previously well-behaved helper function inside the view page).

This error remains until I force a cache-refreshing re-load of the page.

I would try to invoke the call with a fully qualified path or namespace, but because it is a helper function, it isn’t namespaced and I’m not sure how to call it using a path, and then the .php file’s internal function name?

It appears as though the framework loses the current BaseController’s setting/environmentsettings?!?

Is this normal?  Why is it happening?  What am I doing wrong?

Thanks.


RE: Call to undefined (helper) function - InsiteFX - 04-15-2020

Did you change any of your code? Helpers belong to the App namespace.

I would double check your coding to see if something is causing this to happen.


RE: Call to undefined (helper) function - Gary - 04-15-2020

Thanks for the suggestions InsiteFX, and the info that helpers are in the App namespace (which seems sensible, but I'd not thought of).

I have been messing around with some (seemingly unrelated) image-processing stuff, and a bit of CSRF experimentation (which may be more likely the cause (?))...

As an initial experiment, I did try to add a path to my view insertion: <?=\App\myhelperFunction();?>

This results in: Error: Call to undefined function App\myhelperFunction()