This document provides an introduction to the CodeIgniter web application framework. It discusses CodeIgniter's MVC architecture, components like controllers, views and models, and how they work together. It also covers common tasks like form validation, sessions, and CRUD operations using CodeIgniter. Key aspects of CodeIgniter mentioned include its ease of use, configuration, libraries, and documentation.
2. Introduction
Why Framework not Scratch?
MVC ( Model View Controller) Architecture
What is CodeIgniter ????
Application Flow of CodeIgniter
CodeIgniter URL
Controllers
Views
Models
CRUD operations
Session starting
Form validation
Q/A
Reference
3. Key Factors of a Development
Interface Design
Business Logic
Database Manipulation
Advantage of Framework
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
4. 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
5. An Open Source Web Application Framework
Nearly Zero Configuration
MVC ( Model View Controller ) Architecture
Multiple DB (Database) support
Caching
Modules
Validation
Rich Sets of Libraries for Commonly Needed Tasks
Has a Clear, Thorough documentation
7. 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
8. A Class file resides under “application/controllers”
www.your-site.com/index.php/first
<?php
class First extends CI_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();”
9. 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
10. A Webpage or A page Fragment
Should be placed under “application/views”
Never Called Directly
10
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>
11. 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>
12. 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();
16. CONFIGURATION
Then open application/config/config.php
$config['base_url'] = 'http://localhost/ci_user';
Open application/config/autoload.php
$autoload['libraries'] = array('session','database');
$autoload['helper'] = array('url','form');
Open application/config/routes.php, change
default controller to user controller
17. Creating our view page
Create a blank document in the views file (application ->
views) and name it Registration.php /Login.php
Using HTML and CSS create a simple registration
form