Introduction To
CodeIgniter
Prerequisite
OOP – Object Oriented
Programming
PHP
MySQL
Index
Introduction
Evolution Of Web Development
Basic Idea Of Web Framework
Why Framework not Scratch?
MVC ( Model View Controller) Architecture
What is CodeIgniter ????
Installation of CodeIgniter
Application Flow of CodeIgniter
CodeIgniter URL
Controllers
Views
Models
CodeIgniter Libraries
Helpers
A Basic Application Development Of Codeigniter
Application Flow
Q/A
Reference
Evolution of Web
Development
How you first started building
websites.
Evolution of Web
Development
How you’re building websites
now.
Evolution of Web
Development
How you build websites with a
framework
Basic Idea Of Web
Framework
A web application framework
Is a Software framework
Designed to support the development of
Dynamic websites
Web applications
Web services
Aims to alleviate the overhead associated with common activities used
in Web development.
Libraries for database access
Templating frameworks
Session management
Often promote code reuse
Many more …….
Why Framework Not
Scratch ?
Key Factors of a Development
◦ Interface Design
◦ Business Logic
◦ Database Manipulation
◦ User Access Control
Advantage of Framework
◦ Templating
◦ Provide Solutions to Common problems
◦ Abstract Levels of functionality
◦ Make Rapid Development Easier
Disadvantage of Scratch Development
◦ Make your own Abstract Layer
◦ Solve Common Problems Yourself
◦ The more Typing Speed the more faster
MVC Architecture
Separates User Interface From Business Logic
Model - Encapsulates core application data and functionality Business
Logic.
View - obtains data from the model and presents it to the user.
Controller - receives and translates input to requests on the model or
the view
Figure : 01
What is CodeIgniter ???
An Open Source Web Application Framework
Nearly Zero Configuration
MVC ( Model View Controller ) Architecture
Multiple DB (Database) support
DB Objects
Templating
Caching
Modules
Validation
Rich Sets of Libraries for Commonly Needed Tasks
Has a Clear, Thorough documentation
Installation of CodeIgniter
Requirments
Web Server - Download & Install Apache
PHP – 4.3.2 or Higher
Database – MySQL ( support for other DB exists )
Installation
Download the latest version from www.codeigniter.com and unzip into your web
root directory.
Open “application/config/config.php” and change base_url value to base url. For
example: http://localhost/myci/
To Use Database open “application/config/database.php” and change necessary
values. Usually you have to change: ‘hostname’, ‘username’, ‘password’, ‘datbase’.
Start Your Web Server and Database Server and go to http://localhot/myci
Application Flow Of
CodeIgniter
Figure : 2 [ Application Flow of CodeIgniter]
CodeIgniter URL
URL in CodeIgniter is Segment Based.
www.your-site.com/news/article/my_article
Segments in a URI
www.your-site.com/class/function/ID
CodeIgniter Optionally Supports Query String URL
www.your-
site.com/index.php?c=news&m=article&ID=345
Controllers
A Class file resides under “application/controllers”
www.your-site.com/index.php/first
<?php
class First extends Controller{
function First() {
parent::Controller();
}
function index() {
echo “<h1> Hello CUET !! </h1> “;
}
}
?>
// Output Will be “Hello CUET!!”
• Note:
• Class names must start with an Uppercase Letter.
• In case of “constructor” you must use “parent::Controller();”
Controllers
In This Particular Code
www.your-site.com/index.php/first/bdosdn/world
<?php
class First extends Controller{
function index() {
echo “<h1> Hello CUET !! </h1> “;
}
function bdosdn( $location ) {
echo “<h2> Hello $location !! </h2>”;
}
}
?>
// Output Will be “Hello world !!”
• Note:
• The ‘Index’ Function always loads by default. Unless there is a second
segment in the URL
VIEWS
A Webpage or A page Fragment
Should be placed under “application/views”
Never Called Directly
web_root/myci/system/application/views/myview.php
<html>
<title> My First CodeIgniter Project</title>
<body>
<h1> Welcome ALL … To My .. ::: First Project ::: .
. . </h1>
</body>
</html>
16
VIEWS
Calling a VIEW from Controller
$this->load->view(‘myview’);
Data Passing to a VIEW from Controller
function index() {
$var = array(
‘full_name’ => ‘Amzad Hossain’,
‘email’ => ‘tohi1000@yahoo.com’
);
$this->load->view(‘myview’, $var);
}
<html>
<title> ..::Personal Info::.. </title>
<body>
Full Name : <?php echo $full_name;?> <br />
E-mail : <?=email;?> <br />
</body>
</html>
VIEWS
There are 3 mechanism that can be utilize to show Dynamic Data inside a
VIEW File
- Pure PHP
- PHP’s Alternative Syntax
- CodeIgniter’s Template Engine
<!-- PHP’s Alternative Syntax -->
<?php if( $for_this == true ):?>
<h1> For This </h1>
<?php elseif( $for_that == true ): ?>
<h1> For That </h1>
<?php else: ?>
<h1> What </h1>
<?php endif; ?>
• Note:
• There are other alternative syntax ‘for’, ‘foreach’, ‘while’
Models
Designed to work with Information of Database
Models Should be placed Under “application/models/”
<?php
class Mymodel extend Model{
function Mymodel() {
parent::Model();
}
function get_info() {
$query = $this->db->get(‘name’, 10);
/*Using ActiveRecord*/
return $query->result();
}
}
?>
Loading a Model inside a Controller
$this->load->model(‘mymodel’);
$data = $this->mymodel->get_info();
CodeIgniter Libraries
Special Purpose Classes
Benchmarking Database Encryption Calendaring
FTP Table File Uploading Email
Image Manipulation Pagination Input and Security HTML
Trackback Parser Session Template
Unit Testing User Agent URI Validation
Loading CodeIgniter Library
$this->load->library(‘database’);
CodeIgniter Libraries
Database Library
Abstract Database Class support traditional structures and Active Record Pattern.
General Approach
function index() {
$this->load->library(‘database’);
$rslt = $this->db->query(“select first_name from user_name”);
foreach( $rslt->result() as $row_data)
echo $row_data->first_name . “<br />”;
Active Record Pattern
function index() {
$this->load->library(‘database’);
$this->db->select(“first_name”);
$rslt = $this->db->get(“user_name”);
foreach( $rslt->result() as $row_data)
echo $row_data->first_name . “<br />”;
}
Helpers
Simply a collection of functions in a particular category.
Array Date File HTML Smiley Text
URL Cookie Download Form Security String
Directory E-mail Inflector XML Parser Typography
Loading A Helper Inside a Controller
$this->load->helper(‘helper_name’);
$this->load->helper(array(‘form’,’url’) );
Helpers
Form Helper
form_open()
form_open_multipart()
form_input()
form_textarea()
form_checkbox()
form_submit()
form_close()
URL Helper
site_url()
base_url()
anchor()
anchor_popup()
mailto()
A Personal Blog Using CI
Questions???