SlideShare a Scribd company logo
1 of 26
Introduction To
CodeIgniter
Prerequisite
 OOP – Object Oriented Programming
 PHP
 MySQL
Outline
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
 Apache
 PHP
 MySQL
Application Flow of CodeIgniter
 CodeIgniter URL
 Controllers
 Views
 Models
 CodeIgniter Libraries
 Helpers
Lab Work
 Getting started
 Database selection
 Html Helpers
 CRUD – Create Read Update Delete
 Pagination
 File upload
 Security
Evolution of Web Development
How you first started building websites.How you first started building websites.
Evolution of Web Development
How you’re building websites now.How you’re building websites now.
Evolution of Web Development
How you build websites with a frameworkHow you build websites with a framework
Basic Idea Of Web 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
MVC Architecture
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
 Requirements
 Web Server - Download & Install Apache
 PHP – 4.3.2 or Higher
 Database – MySQL ( support for other DB exists )
 XAMPP
Installation of CodeIgniter
 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, database.
 Start Your Web Server and Database Server and go to
http://localhot/myci
Application Flow Of CodeIgniter
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 (application/controllers)
www.your-site.com/index.php/first
<?php
class First extends Controller{
function First() {
parent::Controller();
}
function index() {
echo “<h1> Hello WORLD !! </h1> “;
}
}
?>
// Output Will be “Hello WORLD !!”
• Note:
• Class names must start with an Uppercase Letter.
• In case of “constructor” you must use “parent::Controller();”
Controllers
<?php
class First extends Controller{
function index() {
echo “<h1> Hello WORLD !! </h1> “;
}
function bdosdn( $location ) {
echo “<h2> Hello $location !! </h2>”;
}
}
?>
// Output Will be “Hello world !!”
www.your-site.com/index.php/first/bdosdn/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
18
<html>
<title> My First CodeIgniter Project</title>
<body>
<h1> Welcome ALL … To My .. ::: First Project ::: . . .
</h1>
</body>
</html>
web_root/myci/system/application/views/myview.php
VIEWS
Calling a VIEW from Controller
$this->load->view(‘myview’);
Data Passing to a VIEW from Controller
function index() {
$var = array(
‘full_name’ => 'Ahmad'’,
‘email’ => ‘ahmad@malaysia.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
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
Special Purpose Classes
$this->load->library(‘database’);
Loading CodeIgniter Library
CodeIgniter Libraries
Database Library
Abstract Database Class support traditional structures and Active Record Pattern.
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 />”;
}
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 />”;
}
Active Record Pattern
General Approach
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
$this->load->helper(‘helper_name’);
Loading A Helper Inside a Controller
$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()
Lab work

More Related Content

What's hot

ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web API
habib_786
 
Web servers – features, installation and configuration
Web servers – features, installation and configurationWeb servers – features, installation and configuration
Web servers – features, installation and configuration
webhostingguy
 

What's hot (20)

ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web API
 
An Introduction To REST API
An Introduction To REST APIAn Introduction To REST API
An Introduction To REST API
 
Spring Boot and REST API
Spring Boot and REST APISpring Boot and REST API
Spring Boot and REST API
 
Codeigniter
CodeigniterCodeigniter
Codeigniter
 
Soap vs rest
Soap vs restSoap vs rest
Soap vs rest
 
Codeigniter framework
Codeigniter framework Codeigniter framework
Codeigniter framework
 
Introduction to HTML and CSS
Introduction to HTML and CSSIntroduction to HTML and CSS
Introduction to HTML and CSS
 
Introduction to the Web API
Introduction to the Web APIIntroduction to the Web API
Introduction to the Web API
 
Web servers – features, installation and configuration
Web servers – features, installation and configurationWeb servers – features, installation and configuration
Web servers – features, installation and configuration
 
JavaScript Programming
JavaScript ProgrammingJavaScript Programming
JavaScript Programming
 
Model View Controller (MVC)
Model View Controller (MVC)Model View Controller (MVC)
Model View Controller (MVC)
 
Introduction to GraphQL
Introduction to GraphQLIntroduction to GraphQL
Introduction to GraphQL
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring Framework
 
Html / CSS Presentation
Html / CSS PresentationHtml / CSS Presentation
Html / CSS Presentation
 
ASP.NET Web form
ASP.NET Web formASP.NET Web form
ASP.NET Web form
 
Laravel Tutorial PPT
Laravel Tutorial PPTLaravel Tutorial PPT
Laravel Tutorial PPT
 
An introduction to React.js
An introduction to React.jsAn introduction to React.js
An introduction to React.js
 
ASP.NET MVC Presentation
ASP.NET MVC PresentationASP.NET MVC Presentation
ASP.NET MVC Presentation
 
Angular Data Binding
Angular Data BindingAngular Data Binding
Angular Data Binding
 
MVC ppt presentation
MVC ppt presentationMVC ppt presentation
MVC ppt presentation
 

Viewers also liked

Introduction to MVC Web Framework with CodeIgniter
Introduction to MVC Web Framework with CodeIgniterIntroduction to MVC Web Framework with CodeIgniter
Introduction to MVC Web Framework with CodeIgniter
Pongsakorn U-chupala
 
PHP Frameworks & Introduction to CodeIgniter
PHP Frameworks & Introduction to CodeIgniterPHP Frameworks & Introduction to CodeIgniter
PHP Frameworks & Introduction to CodeIgniter
Jamshid Hashimi
 

Viewers also liked (19)

Introduction to CodeIgniter
Introduction to CodeIgniterIntroduction to CodeIgniter
Introduction to CodeIgniter
 
Bootstrap 4 Alpha 3
Bootstrap 4 Alpha 3Bootstrap 4 Alpha 3
Bootstrap 4 Alpha 3
 
Bootstrap 4 Tutorial PDF for Beginners - Learn Step by Step
Bootstrap 4 Tutorial PDF for Beginners - Learn Step by StepBootstrap 4 Tutorial PDF for Beginners - Learn Step by Step
Bootstrap 4 Tutorial PDF for Beginners - Learn Step by Step
 
Having fun with code igniter
Having fun with code igniterHaving fun with code igniter
Having fun with code igniter
 
Codeigniter
CodeigniterCodeigniter
Codeigniter
 
Distributed database system
Distributed database systemDistributed database system
Distributed database system
 
Introduction To Code Igniter
Introduction To Code IgniterIntroduction To Code Igniter
Introduction To Code Igniter
 
CodeIgniter 101 Tutorial
CodeIgniter 101 TutorialCodeIgniter 101 Tutorial
CodeIgniter 101 Tutorial
 
Introduction to MVC Web Framework with CodeIgniter
Introduction to MVC Web Framework with CodeIgniterIntroduction to MVC Web Framework with CodeIgniter
Introduction to MVC Web Framework with CodeIgniter
 
PHP Frameworks & Introduction to CodeIgniter
PHP Frameworks & Introduction to CodeIgniterPHP Frameworks & Introduction to CodeIgniter
PHP Frameworks & Introduction to CodeIgniter
 
CodeIgniter PHP MVC Framework
CodeIgniter PHP MVC FrameworkCodeIgniter PHP MVC Framework
CodeIgniter PHP MVC Framework
 
MYSQL.ppt
MYSQL.pptMYSQL.ppt
MYSQL.ppt
 
Introduction to MySQL
Introduction to MySQLIntroduction to MySQL
Introduction to MySQL
 
MySQL Atchitecture and Concepts
MySQL Atchitecture and ConceptsMySQL Atchitecture and Concepts
MySQL Atchitecture and Concepts
 
Introduction to Mysql
Introduction to MysqlIntroduction to Mysql
Introduction to Mysql
 
MySql slides (ppt)
MySql slides (ppt)MySql slides (ppt)
MySql slides (ppt)
 
Introduction to codeigniter
Introduction to codeigniterIntroduction to codeigniter
Introduction to codeigniter
 
Introduction to database
Introduction to databaseIntroduction to database
Introduction to database
 
Introduction to computer network
Introduction to computer networkIntroduction to computer network
Introduction to computer network
 

Similar to Introduction To CodeIgniter

Benefit of CodeIgniter php framework
Benefit of CodeIgniter php frameworkBenefit of CodeIgniter php framework
Benefit of CodeIgniter php framework
Bo-Yi Wu
 

Similar to Introduction To CodeIgniter (20)

Codeigniter
CodeigniterCodeigniter
Codeigniter
 
CODE IGNITER
CODE IGNITERCODE IGNITER
CODE IGNITER
 
PHP Frameworks and CodeIgniter
PHP Frameworks and CodeIgniterPHP Frameworks and CodeIgniter
PHP Frameworks and CodeIgniter
 
Codegnitorppt
CodegnitorpptCodegnitorppt
Codegnitorppt
 
IRJET- Lightweight MVC Framework in PHP
IRJET- Lightweight MVC Framework in PHPIRJET- Lightweight MVC Framework in PHP
IRJET- Lightweight MVC Framework in PHP
 
Getting Started with Zend Framework
Getting Started with Zend FrameworkGetting Started with Zend Framework
Getting Started with Zend Framework
 
Web Development Presentation
Web Development PresentationWeb Development Presentation
Web Development Presentation
 
Benefit of CodeIgniter php framework
Benefit of CodeIgniter php frameworkBenefit of CodeIgniter php framework
Benefit of CodeIgniter php framework
 
Folio3 - An Introduction to PHP Yii
Folio3 - An Introduction to PHP YiiFolio3 - An Introduction to PHP Yii
Folio3 - An Introduction to PHP Yii
 
Codeigniter
CodeigniterCodeigniter
Codeigniter
 
CodeIgniter Basics - Tutorial for Beginners
CodeIgniter Basics - Tutorial for Beginners CodeIgniter Basics - Tutorial for Beginners
CodeIgniter Basics - Tutorial for Beginners
 
Expedite the development lifecycle with MongoDB and serverless - DEM02 - Sant...
Expedite the development lifecycle with MongoDB and serverless - DEM02 - Sant...Expedite the development lifecycle with MongoDB and serverless - DEM02 - Sant...
Expedite the development lifecycle with MongoDB and serverless - DEM02 - Sant...
 
CodeIgniter
CodeIgniterCodeIgniter
CodeIgniter
 
ASP.NET Presentation
ASP.NET PresentationASP.NET Presentation
ASP.NET Presentation
 
codeigniter
codeignitercodeigniter
codeigniter
 
Developing Java Web Applications
Developing Java Web ApplicationsDeveloping Java Web Applications
Developing Java Web Applications
 
Codeignitor
Codeignitor Codeignitor
Codeignitor
 
AspMVC4 start101
AspMVC4 start101AspMVC4 start101
AspMVC4 start101
 
MVC Demystified: Essence of Ruby on Rails
MVC Demystified: Essence of Ruby on RailsMVC Demystified: Essence of Ruby on Rails
MVC Demystified: Essence of Ruby on Rails
 
Ch10 Hacking Web Servers http://ouo.io/2Bt7X
Ch10 Hacking Web Servers http://ouo.io/2Bt7XCh10 Hacking Web Servers http://ouo.io/2Bt7X
Ch10 Hacking Web Servers http://ouo.io/2Bt7X
 

More from Muhammad Hafiz Hasan (6)

ElePHPant7 - Introduction to PHP7
ElePHPant7 - Introduction to PHP7ElePHPant7 - Introduction to PHP7
ElePHPant7 - Introduction to PHP7
 
Introduction to Eclipse IDE
Introduction to Eclipse IDEIntroduction to Eclipse IDE
Introduction to Eclipse IDE
 
Introduction to CVS
Introduction to CVSIntroduction to CVS
Introduction to CVS
 
Introduction to Apache Ant
Introduction to Apache AntIntroduction to Apache Ant
Introduction to Apache Ant
 
Board presentation
Board presentationBoard presentation
Board presentation
 
Good design
Good designGood design
Good design
 

Recently uploaded

CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 

Recently uploaded (20)

CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 

Introduction To CodeIgniter

  • 2. Prerequisite  OOP – Object Oriented Programming  PHP  MySQL
  • 3. Outline 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  Apache  PHP  MySQL Application Flow of CodeIgniter  CodeIgniter URL  Controllers  Views  Models  CodeIgniter Libraries  Helpers Lab Work  Getting started  Database selection  Html Helpers  CRUD – Create Read Update Delete  Pagination  File upload  Security
  • 4. Evolution of Web Development How you first started building websites.How you first started building websites.
  • 5. Evolution of Web Development How you’re building websites now.How you’re building websites now.
  • 6. Evolution of Web Development How you build websites with a frameworkHow you build websites with a framework
  • 7. Basic Idea Of Web 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 …….
  • 8. 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
  • 9. 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
  • 11. 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
  • 12. Installation of CodeIgniter  Requirements  Web Server - Download & Install Apache  PHP – 4.3.2 or Higher  Database – MySQL ( support for other DB exists )  XAMPP
  • 13. Installation of CodeIgniter  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, database.  Start Your Web Server and Database Server and go to http://localhot/myci
  • 14. Application Flow Of CodeIgniter Application Flow of CodeIgniter
  • 15. 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
  • 16. Controllers (application/controllers) www.your-site.com/index.php/first <?php class First extends Controller{ function First() { parent::Controller(); } function index() { echo “<h1> Hello WORLD !! </h1> “; } } ?> // Output Will be “Hello WORLD !!” • Note: • Class names must start with an Uppercase Letter. • In case of “constructor” you must use “parent::Controller();”
  • 17. Controllers <?php class First extends Controller{ function index() { echo “<h1> Hello WORLD !! </h1> “; } function bdosdn( $location ) { echo “<h2> Hello $location !! </h2>”; } } ?> // Output Will be “Hello world !!” www.your-site.com/index.php/first/bdosdn/world • Note: • The ‘Index’ Function always loads by default. Unless there is a second segment in the URL
  • 18. VIEWS  A Webpage or A page Fragment  Should be placed under application/views  Never Called Directly 18 <html> <title> My First CodeIgniter Project</title> <body> <h1> Welcome ALL … To My .. ::: First Project ::: . . . </h1> </body> </html> web_root/myci/system/application/views/myview.php
  • 19. VIEWS Calling a VIEW from Controller $this->load->view(‘myview’); Data Passing to a VIEW from Controller function index() { $var = array( ‘full_name’ => 'Ahmad'’, ‘email’ => ‘ahmad@malaysia.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>
  • 20. 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’
  • 21. 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();
  • 22. CodeIgniter Libraries 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 Special Purpose Classes $this->load->library(‘database’); Loading CodeIgniter Library
  • 23. CodeIgniter Libraries Database Library Abstract Database Class support traditional structures and Active Record Pattern. 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 />”; } 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 />”; } Active Record Pattern General Approach
  • 24. 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 $this->load->helper(‘helper_name’); Loading A Helper Inside a Controller $this->load->helper(array(‘form’,’url’) );
  • 25. 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()