Search code examples
phpcodeignitercodeigniter-2

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.


Solution

  • 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.