Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Рабочая тетрадь(4)

.pdf
Скачиваний:
36
Добавлен:
10.02.2016
Размер:
7 Мб
Скачать
☆

Введение в MVC

MVC и ООП

Обзор PHP Фремворков

<html>

<head>

<link rel="stylesheet" type="text/css" href="style.css" /> </head>

<body>

<?php session_start();

$pdo = new PDO('mysql:host=localhost;dbname=db', 'root', '1234'); $stmt = $pdo->prepare("SELECT * FROM products"); $stmt->execute();

$dbresult = $stmt->fetchAll(PDO::FETCH_ASSOC); if (isset($_SESSION['username'])) {

echo "Добро пожаловать, " . $_SESSION['username']; } else {

echo "Вы не авторизованы на сайте";

}

foreach ($dbresult as $record) { foreach ($record as $k => $v) { echo $k . ": " . $v . "<br>";

}

}

Model - View - Controller

Model: Business Logic & Data access

"Модель" предоставляет данные (обычно для View), а также реагирует на запросы (обычно от Controller), изменяя своё состояние

View: Presentation

"Представление" отвечает за отображение информации (пользовательский интерфейс)

Controller: Input/Response Handler

"Поведение" интерпретирует данные, введённые пользователем, и информирует модель и представление о необходимости соответствующей реакции

 

 

<html>

View

<head>

<link rel="stylesheet" type="text/css" href="style.css" />

</head>

 

<body>

 

<?php session_start();

 

$pdo = new PDO('mysql:host=localhost;dbname=db', 'root', '1234');

$stmt = $pdo->prepare("SELECT * FROM products");

Model

$stmt->execute();

$dbresult = $stmt->fetchAll(PDO::FETCH_ASSOC); if (isset($_SESSION['username'])) {

echo "Добро пожаловать, " . $_SESSION['username'];

} else {

Controller

 

echo "Вы не авторизованы на сайте";

 

}

 

foreach ($dbresult as $record) {

 

foreach ($record as $k => $v) {

 

echo $k . ": " . $v . "<br>";

 

}

 

}

 

<?php

include 'controller.php';

?>

<html>

<head>

<link rel="stylesheet" type="text/css" href="style.css" /> </head>

<body> <h1>Пример</h1> <?php

echo $output;

foreach ($dbresult as $record) { foreach ($record as $k => $v) {

echo $k . ": " . $v . "<br>";

}

}

?>

</body>

</html>

<?php

include 'model.php';

session_start();

if (isset($_SESSION['username'])) {

$output = "Добро пожаловать, ". $_SESSION['username']; } else {

$output = "Вы не авторизованы не сайте";

}

$dbresult = fetchAllProducts();

<?php

function getDBConnection() { try {

$pdo = new PDO('sqlite:shop.db'); return $pdo;

} catch (Exception $e) {

echo "Извините, " . $e->getMessage());

}

}

function fetchAllProducts() { $pdo = getDBConnection(); try {

$stmt = $pdo->prepare("SELECT * FROM products"); $stmt->execute();

return $stmt->fetchAll(PDO::FETCH_ASSOC); } catch (Exception $e) {

echo "Извините, " . $e->getMessage());

}

}

Controllers

создание FrontController (встроенный)

▪интерпритация переменных запроса и направление исполняемого кода

▪выполняет всю черновую работу: создание моделей, парсинг шаблонов, вывод результата

ActionControllers (пользовательские)

▪action = метод

Models

классы-утилиты

Views

шаблоны

/controller/action[/key 1][/value 1]...

/

/book/show

/book/show/id/25

/book/show/category/php/year/2012

/book/get/format/xml

mod_rewrite => bootstrap file