Any kind of framework is a collection of reusable code which is divided into classes, so if we talk about OOPS or MVC, we do all our task in classes like for email sending, form validation or pagination kind of work. Collection of these classes are called a library in Codeignitor. There are so many libraries in Codeignitor which can find in it’s documentation Codeignitor Libraries and that can be used depends on requirement. So if we need to send an email we don’t need to create the whole function from scratch, we can use its email library for the implementation and same for the other task. Now let’s see how to use a library in CI.
Load the library to use it. Create a controller users.php and then use below code to send an email.
Controller: users.php
<?php
defined( 'BASEPATH' ) OR exit ( 'No direct script access allowed' );
class Users extends CI_Controller {
public function index() {
$this ->load->library( 'email' );
$this ->email->subject( 'Test' );
$this ->email->message( 'Welcome to GeeksforGeeks' );
$this ->email->send();
}
}
?>
|
If we need to load multiple libraries, we can create an array and then define all the libraries name in that array.
$this->load->library(array('form_validation', 'email'));
Custom Libraries: We saw that CI has already a lot of inbuilt libraries. If we need some functionality which is not available in the CI library then we can create our own custom library. Let’s see how to create a custom library in CI.
Inbuilt libraries are available in the system folder but custom libraries need to be created in application/libraries folder. We need to keep in mind that file name should be same of the class name, also the first letter of a file name and class name should be in uppercase. Create a file Test.php in application/library folder. Below is the example of creating functionality in our custom library.
Custom Library: Test.php
<?php
class Test {
public function abc() {
echo "Welcome to GeeksforGeeks" ;
}
}
?>
|
Custom libraries can be used just like inbuilt libraries in the controller. So in our users.php controller use the code below to check this.
Controller: users.php
<?php
defined( 'BASEPATH' ) OR exit ( 'No direct script access allowed' );
class Users extends CI_Controller {
public function index() {
$this ->load->library( 'test' );
$this ->test->abc();
}
}
?>
|
Output:
Welcome to GeeksforGeeks
Extending Libraries: In this section we will see how to extend the inbuilt libraries of CI. It is also created in the same folder application/libraries just like we were doing for custom libraries. Now we need to keep in mind that we need to add MY_ prefix when we give the name for our library file, also use extends keyword to inherit all the properties of Email library. So, create a file MY_Email.php in application/libraries folder and use the code below.
Extended Library: MY_Email.php
<?php
class MY_Email extends CI_Email {
public function test() {
echo "This is test function for extended Email library" ;
}
}
?>
|
Once the Email library is extended, we can use it’s additional function ‘test’ in our controller. So in controller users.php use the code below to call ‘test’ function from Email library.
Controller: users.php
<?php
defined( 'BASEPATH' ) OR exit ( 'No direct script access allowed' );
class Users extends CI_Controller {
public function index() {
$this ->load->library( 'email' );
$this ->email->test();
}
}
?>
|
Output:
This is test function for extended Email library
Till now, extending our libraries and adding our own functionality, now if we want to completely override inbuilt libraries function and don’t want to use any function from the inbuilt library then we can also do that. All we just need to do is to create a file in application/library with file name Email.php (or whatever library needs to override) and then write your own function. Here we don’t need to use extends keyword. Below is the code…
Overridden library Name: Email.php
<?php
class CI_Email {
public function test() {
echo "This is test function for overridden Email library" ;
}
}
?>
|
Loading this library and calling the function will be the same as earlier we were doing in controller users.php.
Output:
This is test function for overridden Email library
get_instance(): Codeignitor make a super object and then sub-objects are created. We use $this keyword to access the object. We can not use $this keyword apart from controllers, models and view. So if we need to load another inbuilt helper or library in our custom library, $this won’t work because these custom libraries are out of the scope of superobject. To solve this issue we need to use get_instance() method in our custom library. Firstly we need to get the instance of superobject in a variable. Below is the line for our custom library to get the original codeignitor object reference.
$CI =& get_instance();
We need to notice that we are getting the reference or address of original codeignitor object using ‘&’ instead of creating a copy. After that, we can load any helper or library or model. Below is the complete code for custom library Test.php
Custom Library: Test.php
<?php
class Test {
public function abc() {
$CI =& get_instance();
$CI ->load->helper( 'array' );
}
}
?>
|
Similar Reads
Helpers in Codeignitor
Helpers are the reusable code in codeignitor like libraries. The only difference is that libraries are collection of classes whereas helper is defined as individual independent set of functions. Helper functions need to be loaded before using it. We can find all the helpers in codeignitor documentat
4 min read
How MVC works in Codeignitor ?
Codeignitor is based on MVC design pattern. We will see how the controller, model, and view work and display the result to the user. Controller: Like the name suggest, it controls the communication between views and models. All the URL works in CodeIgniter with controller name. Now let's see some po
4 min read
Explain CodeIgniter folder structure
CodeIgniter is an Application Development Framework to build websites using PHP. It is used to minimize the code while developing an application and developed as much fast. The folder structure is an important part of CodeIgniter. It is important to understand the file structure in CodeIgniter to de
3 min read
Introduction to Codeignitor (PHP)
Codeignitor is one of the popular MVC framework of PHP. Most of the developers prefer to make their projects on Codeignitor because of it's lightweight and easy to understand documentation. Some of the features, advantages or why use Codeignitor is given below. Why use Codeignitor? Fast and lightwei
4 min read
JavaScript Libraries and Frameworks
JavaScript libraries and frameworks make the life of a programmer easier by providing a plethora of built-in functions and methods. These tools enhance web development by saving time, making code more readable, and offering project structure and data flow organization, resulting in faster and more r
10 min read
How to write ReactJS Code in Codepen.IO ?
Now everything is online, some people use VScode to write react.js code and face most of the difficulty. The VScode requires setting for writing React.js code and Many beginners faced difficulty to use VScode so, for them, it is good and easy to use codepen. The codepen provide you with an online pl
2 min read
How to check the CodeIgniter version ?
PHP has many frameworks like Laravel, CodeIgniter, etc., but "Codeignitor" is one of the popular MVC frameworks of PHP. Most of the developers prefer to make their projects on Codeignitor because it is very lightweight and also its documentation is easy to understand. Some of the features and advant
4 min read
Emmet in visual studio code
Emmet in Visual Studio Code: Emmet is a built-in feature in Visual Studio Code. You don't have to install any extensions for emmet support. Emmet prevents you from writing the entire code by yourself by providing Emmet abbreviation. Emmet is enabled by default in html, haml, pug, slim, jsx, xml, xsl
3 min read
What is WordPress Elementor?
WordPress Elementor is a powerful page builder plugin that allows users to create stunning websites without any coding knowledge. In this guide, weâll explore the features, benefits, and best practices for using Elementor effectively. What is WordPress Elementor? Building Beautiful Websites Made Eas
4 min read
Difference Between Laravel and CodeIgniter Framework in PHP
Laravel Laravel is a PHP based framework. It is developed by Taylor Otwell June 2011 and it is free to open-source PHP web framework as well as supports model-view-controller (MVC) patterns for application development. This framework mostly used for developing a modest and full-featured application
2 min read