Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Where to place global functions in codeigniter

I have created a few utility functions like one h() that acts as echo htmlentities($var) . I want theses functions to be available everywhere . so where do i put it.

like image 235
aWebDeveloper Avatar asked Sep 09 '25 17:09

aWebDeveloper


2 Answers

As @david barker said, you might use an helper. Create a file named, for example, "site_helper", that contains all the functions.

be aware you need to check if the function already exists, though, or you'll get an "function already declared" error.

So, something like:

file site_helper.php (in application/helpers/ )

if(!function_exists('h'))
{
  function h($value)
  {
   return htmlentities($value);
  }
}

if(!functin_exists('other_function')
//....etc.

And then you can autoload it in config/autoload.php:

$autoload['helpers'] = array('site');

^-- note how you only use the part before the underscore to call the file. Also, helpers are not classes, but a collection of functions.

like image 124
Damien Pirsy Avatar answered Sep 12 '25 07:09

Damien Pirsy


You should include your global variables file in your /application/config/constants.php file. Then move your global function file to /application/helpers folder. Then you should autoload the global functions file. /application/config/autoload.php

$autoload['helpers'] = array('your-global-function-file.php');

I would suggest not moving anything inside of the system folder project, as upgrading would be an absolute nightmare. Sometimes refactoring your code to conform to CI logic, maybe faster in the long run rather than trying to copy/paste stuff all over the place.

like image 39
Shiven Avatar answered Sep 12 '25 07:09

Shiven