003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02

41
Web Application Development using MVC Framework Kohana Arafat Rahman Web Application Developer Solution Arena http://arafatbd.net

Upload: julio-pari

Post on 16-Apr-2017

2.435 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02

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

Framework ?

Provides Generic

functionality Some key features Reusable Well-defined Specialized by user

Page 3: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02

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

MVC ?

Model-View-Controller

Page 5: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02

MVC

Page 6: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02

HMVC ?

Hierarchical Model View Controller

Page 7: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02

MVC and HMVC

Page 8: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02

Setting up Kohana (KO3)

Page 9: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02

Setting up Kohana

Page 10: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02

Configuration

application/bootstrap.php

Kohana::init(array('base_url' => '/kohana/',));

Page 11: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02

Configuration (cont.)

Delete /install.php

Page 12: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02

Requesting a Controller

/index.php/<controller>/<action>

example:/index.php/topic/view/123

Page 13: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02

Hello, world!

Page 14: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02

Hello, world! (cont.)

http://localhost/kohana/index.php/welcome

Page 15: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02

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

Hello, world! (cont.)

http://localhost/kohana/welcome

Page 17: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02

Database Configapplication/bootstrap.php

Page 18: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02

Database Config (cont.)application/config/database.php

Page 19: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02

Database Config (cont.)application/config/database.php

Page 20: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02

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

Reading Database Recordsapplication/classes/controller/topic.php

Page 22: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02

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

Reading Database Recordsapplication/view/list.php

Page 24: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02

Reading Database Recordsapplication/view/list.php

Page 25: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02

Reading Database Recordsapplication/view/list.php

Page 26: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02

Inserting New Recordsapplication/classes/controller/topic.php

http://localhost/kohana/topic/new_topic

Page 27: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02

Inserting New Records (cont.)http://localhost/kohana/topic/new_topic

Page 28: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02

Inserting New Records (cont.)application/classes/controller/topic.php

Page 29: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02

Inserting New Records (cont.)application/classes/controller/topic.php

Page 30: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02

Inserting New Records (cont.)application/classes/controller/topic.php

Page 31: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02

Update Recordshttp://localhost/kohana/topic/index

Page 32: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02

Update Records (cont.)application/classes/controller/topic.php

Page 33: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02

Update Records (cont.)application/classes/controller/topic.php

Page 34: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02

Update Records (cont.)http://localhost/kohana/topic/edit/1

Page 35: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02

Update Records (cont.)application/classes/controller/topic.php

Page 36: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02

Update Records (cont.)application/classes/controller/topic.php

Page 37: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02

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

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

HMVC (cont.)In a Controller$data['featured'] = Request::factory('topic/featured')

->execute()->response;

Page 40: 003 web-apps-using-kohana-arafat-rahman-101107191139-phpapp02

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

Questions ?Again, I am

Arafat Rahmanhttp://arafatbd.net