![Page 1: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02](https://reader036.vdocument.in/reader036/viewer/2022062503/53fac8ca8d7f7258208b6c9c/html5/thumbnails/1.jpg)
Web Application Development using MVC Framework Kohana
Arafat RahmanWeb Application Developer
Solution Arenahttp://arafatbd.net
![Page 2: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02](https://reader036.vdocument.in/reader036/viewer/2022062503/53fac8ca8d7f7258208b6c9c/html5/thumbnails/2.jpg)
Framework ?
Provides Generic
functionality Some key features Reusable Well-defined Specialized by user
![Page 3: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02](https://reader036.vdocument.in/reader036/viewer/2022062503/53fac8ca8d7f7258208b6c9c/html5/thumbnails/3.jpg)
Why Kohana (KO3) Its MVC Its HMVC Very fast framework Strict PHP 5.2 - OOP and extremely DRY Many common components Simple routing structure
![Page 4: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02](https://reader036.vdocument.in/reader036/viewer/2022062503/53fac8ca8d7f7258208b6c9c/html5/thumbnails/4.jpg)
MVC ?
Model-View-Controller
![Page 5: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02](https://reader036.vdocument.in/reader036/viewer/2022062503/53fac8ca8d7f7258208b6c9c/html5/thumbnails/5.jpg)
MVC
![Page 6: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02](https://reader036.vdocument.in/reader036/viewer/2022062503/53fac8ca8d7f7258208b6c9c/html5/thumbnails/6.jpg)
HMVC ?
Hierarchical Model View Controller
![Page 7: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02](https://reader036.vdocument.in/reader036/viewer/2022062503/53fac8ca8d7f7258208b6c9c/html5/thumbnails/7.jpg)
MVC and HMVC
![Page 8: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02](https://reader036.vdocument.in/reader036/viewer/2022062503/53fac8ca8d7f7258208b6c9c/html5/thumbnails/8.jpg)
Setting up Kohana (KO3)
![Page 9: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02](https://reader036.vdocument.in/reader036/viewer/2022062503/53fac8ca8d7f7258208b6c9c/html5/thumbnails/9.jpg)
Setting up Kohana
![Page 10: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02](https://reader036.vdocument.in/reader036/viewer/2022062503/53fac8ca8d7f7258208b6c9c/html5/thumbnails/10.jpg)
Configuration
application/bootstrap.php
Kohana::init(array('base_url' => '/kohana/',));
![Page 11: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02](https://reader036.vdocument.in/reader036/viewer/2022062503/53fac8ca8d7f7258208b6c9c/html5/thumbnails/11.jpg)
Configuration (cont.)
Delete /install.php
![Page 12: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02](https://reader036.vdocument.in/reader036/viewer/2022062503/53fac8ca8d7f7258208b6c9c/html5/thumbnails/12.jpg)
Requesting a Controller
/index.php/<controller>/<action>
example:/index.php/topic/view/123
![Page 13: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02](https://reader036.vdocument.in/reader036/viewer/2022062503/53fac8ca8d7f7258208b6c9c/html5/thumbnails/13.jpg)
Hello, world!
![Page 14: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02](https://reader036.vdocument.in/reader036/viewer/2022062503/53fac8ca8d7f7258208b6c9c/html5/thumbnails/14.jpg)
Hello, world! (cont.)
http://localhost/kohana/index.php/welcome
![Page 15: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02](https://reader036.vdocument.in/reader036/viewer/2022062503/53fac8ca8d7f7258208b6c9c/html5/thumbnails/15.jpg)
Hide index.php
How to hide index.php
http://kerkness.ca/wiki/doku.php?id=removing_the_index.php
![Page 16: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02](https://reader036.vdocument.in/reader036/viewer/2022062503/53fac8ca8d7f7258208b6c9c/html5/thumbnails/16.jpg)
Hello, world! (cont.)
http://localhost/kohana/welcome
![Page 17: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02](https://reader036.vdocument.in/reader036/viewer/2022062503/53fac8ca8d7f7258208b6c9c/html5/thumbnails/17.jpg)
Database Configapplication/bootstrap.php
![Page 18: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02](https://reader036.vdocument.in/reader036/viewer/2022062503/53fac8ca8d7f7258208b6c9c/html5/thumbnails/18.jpg)
Database Config (cont.)application/config/database.php
![Page 19: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02](https://reader036.vdocument.in/reader036/viewer/2022062503/53fac8ca8d7f7258208b6c9c/html5/thumbnails/19.jpg)
Database Config (cont.)application/config/database.php
![Page 20: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02](https://reader036.vdocument.in/reader036/viewer/2022062503/53fac8ca8d7f7258208b6c9c/html5/thumbnails/20.jpg)
Create Table: topicsCREATE TABLE `kohana`.`topics` (`topic_id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`title` VARCHAR( 250 ) NOT NULL ,
`description` TEXT NOT NULL ,`date` DATETIME NOT NULL) ;
![Page 21: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02](https://reader036.vdocument.in/reader036/viewer/2022062503/53fac8ca8d7f7258208b6c9c/html5/thumbnails/21.jpg)
Reading Database Recordsapplication/classes/controller/topic.php
![Page 22: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02](https://reader036.vdocument.in/reader036/viewer/2022062503/53fac8ca8d7f7258208b6c9c/html5/thumbnails/22.jpg)
Reading Database Recordsapplication/classes/controller/topic.phptry {
$data['topics'] = DB::select()
->from('topics')
->order_by('date', "DESC")
->execute()
->as_array();
$this->request->response = View::factory('list', $data);
}
![Page 23: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02](https://reader036.vdocument.in/reader036/viewer/2022062503/53fac8ca8d7f7258208b6c9c/html5/thumbnails/23.jpg)
Reading Database Recordsapplication/view/list.php
![Page 24: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02](https://reader036.vdocument.in/reader036/viewer/2022062503/53fac8ca8d7f7258208b6c9c/html5/thumbnails/24.jpg)
Reading Database Recordsapplication/view/list.php
![Page 25: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02](https://reader036.vdocument.in/reader036/viewer/2022062503/53fac8ca8d7f7258208b6c9c/html5/thumbnails/25.jpg)
Reading Database Recordsapplication/view/list.php
![Page 26: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02](https://reader036.vdocument.in/reader036/viewer/2022062503/53fac8ca8d7f7258208b6c9c/html5/thumbnails/26.jpg)
Inserting New Recordsapplication/classes/controller/topic.php
http://localhost/kohana/topic/new_topic
![Page 27: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02](https://reader036.vdocument.in/reader036/viewer/2022062503/53fac8ca8d7f7258208b6c9c/html5/thumbnails/27.jpg)
Inserting New Records (cont.)http://localhost/kohana/topic/new_topic
![Page 28: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02](https://reader036.vdocument.in/reader036/viewer/2022062503/53fac8ca8d7f7258208b6c9c/html5/thumbnails/28.jpg)
Inserting New Records (cont.)application/classes/controller/topic.php
![Page 29: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02](https://reader036.vdocument.in/reader036/viewer/2022062503/53fac8ca8d7f7258208b6c9c/html5/thumbnails/29.jpg)
Inserting New Records (cont.)application/classes/controller/topic.php
![Page 30: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02](https://reader036.vdocument.in/reader036/viewer/2022062503/53fac8ca8d7f7258208b6c9c/html5/thumbnails/30.jpg)
Inserting New Records (cont.)application/classes/controller/topic.php
![Page 31: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02](https://reader036.vdocument.in/reader036/viewer/2022062503/53fac8ca8d7f7258208b6c9c/html5/thumbnails/31.jpg)
Update Recordshttp://localhost/kohana/topic/index
![Page 32: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02](https://reader036.vdocument.in/reader036/viewer/2022062503/53fac8ca8d7f7258208b6c9c/html5/thumbnails/32.jpg)
Update Records (cont.)application/classes/controller/topic.php
![Page 33: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02](https://reader036.vdocument.in/reader036/viewer/2022062503/53fac8ca8d7f7258208b6c9c/html5/thumbnails/33.jpg)
Update Records (cont.)application/classes/controller/topic.php
![Page 34: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02](https://reader036.vdocument.in/reader036/viewer/2022062503/53fac8ca8d7f7258208b6c9c/html5/thumbnails/34.jpg)
Update Records (cont.)http://localhost/kohana/topic/edit/1
![Page 35: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02](https://reader036.vdocument.in/reader036/viewer/2022062503/53fac8ca8d7f7258208b6c9c/html5/thumbnails/35.jpg)
Update Records (cont.)application/classes/controller/topic.php
![Page 36: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02](https://reader036.vdocument.in/reader036/viewer/2022062503/53fac8ca8d7f7258208b6c9c/html5/thumbnails/36.jpg)
Update Records (cont.)application/classes/controller/topic.php
![Page 37: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02](https://reader036.vdocument.in/reader036/viewer/2022062503/53fac8ca8d7f7258208b6c9c/html5/thumbnails/37.jpg)
Model and ORMObject Relational Mapping (ORM)
application/classes/model/topic.php
class Model_Topic extends ORM { ...}
![Page 38: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02](https://reader036.vdocument.in/reader036/viewer/2022062503/53fac8ca8d7f7258208b6c9c/html5/thumbnails/38.jpg)
HMVCIn a View<?php echo $content;?><br/><?php echo Request::factory('topic/featured')
->execute()->response;?>
![Page 39: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02](https://reader036.vdocument.in/reader036/viewer/2022062503/53fac8ca8d7f7258208b6c9c/html5/thumbnails/39.jpg)
HMVC (cont.)In a Controller$data['featured'] = Request::factory('topic/featured')
->execute()->response;
![Page 40: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02](https://reader036.vdocument.in/reader036/viewer/2022062503/53fac8ca8d7f7258208b6c9c/html5/thumbnails/40.jpg)
References Kohana Documentation
http://kohanaframework.org/documentation Unofficial documentaion
http://kerkness.ca/wiki/doku.php
![Page 41: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02](https://reader036.vdocument.in/reader036/viewer/2022062503/53fac8ca8d7f7258208b6c9c/html5/thumbnails/41.jpg)
Questions ?Again, I am
Arafat Rahmanhttp://arafatbd.net