<!DOCTYPE html>
<meta charset="utf-8">
<?php
require_once 'Data.php';
require_once 'DataCaretaker.php';
$caretaker = new DataCaretaker();
$data = isset($_SESSION['data']) ? $_SESSION['data'] : new Data();
$mode = isset($_POST['mode']) ? $_POST['mode'] : '';
switch ($mode) {
case 'add':
$data->addComment($_POST['comment']);
break;
case 'save':
//データのスナップショットを保存する
$caretaker->setSnapshot($data->takeSnapshot());
echo 'データを保存しました。<br />';
break;
case 'restore':
//スナップショットからデータを復元する
$data->restoreSnapshot($caretaker->getSnapshot());
echo 'データを復元しました。<br />';
break;
case 'clear':
$data = new Data();
break;
default:
break;
}
echo 'これまでのコメント。<br />';
if (!is_null($data)) {
echo '<ul>';
foreach ($data->getComment() as $comment) {
echo '<li>' . htmlspecialchars($comment, ENT_QUOTES);
}
echo '</ul>';
}
$_SESSION['data'] = $data;
?>
<form action="index.php" method="post">
コメント:
<input type="text" name="comment" />
<input type="submit" name="mode" value="add" />
<input type="submit" name="mode" value="save" />
<input type="submit" name="mode" value="restore" />
<input type="submit" name="mode" value="clear" />
</form>