0% found this document useful (0 votes)
5 views

Pertemuan 11 PHP MVC 1

The document discusses the model-view-controller pattern and how it can be implemented in PHP web applications. It describes the responsibilities of the model, view and controller layers and includes code examples of implementing an MVC pattern with PHP including model, view and controller classes and files.

Uploaded by

Nedal Muhammed
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views

Pertemuan 11 PHP MVC 1

The document discusses the model-view-controller pattern and how it can be implemented in PHP web applications. It describes the responsibilities of the model, view and controller layers and includes code examples of implementing an MVC pattern with PHP including model, view and controller classes and files.

Uploaded by

Nedal Muhammed
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 13

PHP & MVC

The model view controller pattern is


the most used pattern for today’s world


web applications
It has been used for the first time in

Smalltalk and then adopted and


popularized by Java
At present there are more than a dozen

PHP web frameworks based on MVC pattern


PHP & MVC
The model is responsible to manage

the data
The view (presentation) is

responsible to display the data


provided by the model in a specific
format
The controller handles the model

and view layers to work together


PHP & MVC
PHP & MVC
model/Book.php
<?php
class Book {
public $title;
public $author;
public $description;

public function __construct($title, $author,


$description)
{
$this->title = $title;
$this->author = $author;
$this->description = $description;
}
}
?>
model/Model.php
<?php
include_once("model/Book.php");

class Model {
public function getBookList()
{
// here goes some hardcoded values to simulate the database
return array(
"Jungle Book" => new Book("Jungle Book", "R. Kipling", "A classic book."),
"Moonwalker" => new Book("Moonwalker", "J. Walker", ""),
"PHP for Dummies" => new Book("PHP for Dummies", "Some Smart Guy", "")
);
}
public function getBook($title)
{
// we use the previous function to get all the books
// and then we return the requested one.
// in a real life scenario this will be done through
// a database select command
$allBooks = $this->getBookList();
return $allBooks[$title];
}
}
?>
view/viewbook.php
<html>
<head></head>
<body>
<?php

echo 'Title:' . $book->title . '<br/>';


echo 'Author:' . $book->author . '<br/>';
echo 'Description:' . $book->description . '<br/>';

?>
</body>
</html>
view/booklist.php
<html>
<head></head>
<body>
<table>
<tbody>

<tr><td>Title</td><td>Author</td><td>Description</td></tr>
</tbody>
<?php

foreach ($books as $book) {


echo '<tr><td><a href="index.php?book=' .
$book->title . '">' . $book->title .
'</a></td><td>' .
$book->author . '</td><td>' . $book-
>description . '</td></tr>';
}
?>
</table>
</body>
</html>
controller/Controller.php
<?php
include_once("model/Model.php");

class Controller {
public $model;

public function __construct()


{
$this->model = new Model();
}
controller/Controller.php
public function invoke()
{
if (!isset($_GET['book']))
{
// no special book is requested, we'll show a
list of all available books
$books = $this->model->getBookList();
include 'view/booklist.php';
}
else
{
// show the requested book
$book = $this->model->getBook($_GET['book']);
include 'view/viewbook.php';
}
}
}
?>
index.php
<?php

// All interaction goes through the index and is


forwarded
// directly to the controller

include_once("controller/Controller.php");

$controller = new Controller();


$controller->invoke();

?>
PHP & MVC

You might also like