Рабочая тетрадь(4)
.pdf
Введение в 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
