CodeIgniter 4 allows creating helper files to store collection of reusable functions. Require loading the helper before using that helper file function.
Helper functions offer numerous advantages. They encapsulate repetitive or complex code into reusable functions, promoting code reusability and maintainability. By abstracting common functionality into helper functions, developers can write cleaner and more concise code, enhancing the overall efficiency of their development workflow.
Files are stored in app/Helpers/ folder.
In this tutorial, I show how you can create helper functions and use them in the controller and view in CodeIgniter 4.

Table of Content
- Creating Helper Files and Defining Helper Functions
- Example 1 (Calling Helper function in Controller)
- Example 2 (Loading multiple helpers)
- Example 3 (Loading Helper function in View)
- Example 4 (Loading Helper function Globally)
- Conclusion
1. Creating Helper Files and Defining Helper Functions
A helper file is the container for your helper functions in CodeIgniter 4.
- Open
app/Helpers/folder. - Create 2 Helper files –
- custom1_helper1.php
- custom2_helper2.php
1. Create app/Helpers/custom1_helper.php file.
- Created 2 functions –
- fun1()
- randomstring()
<?php
if(!function_exists('fun1')){
function fun1(){
return "helper function 1";
}
}
if(!function_exists('randomstring')){
function randomstring($length = 8) {
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$charactersLength = strlen($characters);
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, $charactersLength - 1)];
}
return $randomString;
}
}
2. Create app/Helpers/custom2_helper.php file.
- Created 2 functions –
- fun2()
- checkeven()
<?php
if(!function_exists('fun2')){
function fun2(){
return "helper function 2";
}
}
if(!function_exists('checkeven')){
function checkeven($num = 0) {
if($num%2 == 0){
return "Even";
}else{
return "Odd";
}
}
}
2. Example 1 (Calling Helper function in Controller)
- Create
PageControllerController –
php spark make:controller PageController
- Open
app/Controllers/PageController.phpfile. - Create
index()method –- Pass helper file name in
helper()to load e.g.helper('custom1_helper').
- Pass helper file name in
NOTE – You can also call it as –
helper('custom1');.
-
- Directly call helper function e.g.
randomstring();.
- Directly call helper function e.g.
<?php
namespace App\Controllers;
class PageController extends BaseController{
public function index(){
helper('custom1_helper'); // Loading single helper
// Calling functions
$fun1 = fun1();
$randomstr = randomstring();
echo "fun1 : ".$fun1."<br><br>";
echo "randomstr : ".$randomstr;
}
}
Output
fun1 : helper function 1 randomstr : kTh0DUEk
3. Example 2 (Loading multiple helpers)
- Create
PageControllerController using the following command –
php spark make:controller PageController
- Open
app/Controllers/PageController.phpfile. - Create
index()method –- Loading 2 helper files. For this specify file names in Array format.
helper(['custom1_helper','custom2_helper']);
-
- Directly call functions.
<?php
namespace App\Controllers;
class PageController extends BaseController{
public function index(){
// Loading helpers
helper(['custom1_helper','custom2_helper']);
// custom1_helper functions
$fun1 = fun1();
$randomstr = randomstring();
echo "fun1 : ".$fun1."<br><br>";
echo "randomstr : ".$randomstr."<br><br>";
// custom2_helper functions
$fun2 = fun2();
$evenOrOdd = checkeven(91);
echo "fun2 : ".$fun2."<br><br>";
echo "evenOrOdd : ".$evenOrOdd."<br><br>";
}
}
Output
fun1 : helper function 1 randomstr : GMTO9qCs fun2 : helper function 2 evenOrOdd : 91 is Odd
4. Example 3 (Loading Helper function in View)
Controller –
- Create
PageControllerController –
php spark make:controller PageController
- Open
app/Controllers/PageController.phpfile. - Create
index()method –- Load
indexview.
- Load
<?php
namespace App\Controllers;
class PageController extends BaseController{
public function index(){
return view('index');// Load index view
}
}
View –
- Create
index.phpfile inapp/Views/. - Loading of a helper is same as the controller.
- Specify helper file name in
helper(). - Directly call the helper function for accessing.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>How to create and use Helper function in CodeIgniter 4</title>
</head>
<body>
<?php
// helper("custom1_helper"); // Single helper loading
helper(["custom1_helper","custom2_helper"]); // Multiple helper loading
?>
<?php
// custom1_helper functions
$fun1 = fun1();
$randomstr = randomstring();
echo "fun1 : ".$fun1."<br><br>";
echo "randomstr : ".$randomstr."<br><br>";
// custom2_helper functions
$fun2 = fun2();
$evenOrOdd = checkeven(91);
echo "fun2 : ".$fun2."<br><br>";
echo "evenOrOdd : ".$evenOrOdd."<br><br>";
?>
</body>
</html>
Output
fun1 : helper function 1 randomstr : GMTO9qCs fun2 : helper function 2 evenOrOdd : 91 is Odd
4. Example 4 (Loading Helper function Globally)
For this need to specify helper name in $helpers variable in the BaseController.php file. After specifying the helper functions are acessable without loading in the controller and view.
BaseController.php
- Open
app/Controllers/BaseController.phpfile. - Specify helper name in
$helpersvariable.
// protected $helpers = ['custom1_helper','custom2_helper']; // Multiple helper loading protected $helpers = ['custom1_helper']; // Single helper loading
- Only loaded one helper –
custom1_helper.
<?php
namespace App\Controllers;
use CodeIgniter\Controller;
use CodeIgniter\HTTP\CLIRequest;
use CodeIgniter\HTTP\IncomingRequest;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use Psr\Log\LoggerInterface;
class BaseController extends Controller{
protected $request;
protected $helpers = ['custom1_helper'];
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
{
parent::initController($request, $response, $logger);
}
}
Controller –
- Create
PageControllerController –
php spark make:controller PageController
- Open
app/Controllers/PageController.phpfile. - Create
index()method –- Load
indexview.
- Load
<?php
namespace App\Controllers;
class PageController extends BaseController{
public function index(){
// Loading helpers
helper('custom2_helper');
// custom1_helper functions
$fun1 = fun1();
echo "fun1 : ".$fun1."<br><br>";
// custom2_helper functions
$fun2 = fun2();
echo "fun2 : ".$fun2."<br><br>";
return view('index');// Load index view
}
}
View –
- Create
index.phpfile inapp/Views/. - Loading of a helper is the same as the controller.
- Specify helper file name in
helper(). - Directly call the helper function for accessing.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>CodeIgniter 4 Helper Functions: Creating and Harnessing Their Power</title>
</head>
<body>
<?php
helper("custom2_helper"); // Single helper loading
?>
<?php
// custom1_helper functions
$randomstr = randomstring();
echo "randomstr : ".$randomstr."<br><br>";
// custom2_helper functions
$evenOrOdd = checkeven(91);
echo "evenOrOdd : ".$evenOrOdd."<br><br>";
?>
</body>
</html>
Output
fun1 : helper function 1 fun2 : helper function 2 randomstr : 0FDzYqjk evenOrOdd : 91 is Odd
5. Conclusion
Helper functions in CodeIgniter 4 simplify common tasks and boost code reusability. This streamlined approach saves developers time, enhances code maintainability and increases efficiency.
CodeIgniter 4’s custom helper functions offer flexibility and convenience for web application development. Unlock the full potential of this powerful platform by embracing the benefits of helper functions in your projects.
If you found this tutorial helpful then don't forget to share.If you want to use helper functions across all controllers and view then mention it in
app/Controllers/BaseController.phpfile$helpersvariable otherwise load where it requires and use it.