データベースでマークアップを kepp する場合、そのマークアップを取得するには次のことが必要です。
- 構成ファイル (存在する場合) を解析し、接続を確立します
- クエリを実行してデータをフェッチする
- 結果を追加する
マークアップをファイルに保存する場合は、require()
言語構造を介してそのマークアップを含めるだけです。
編集
厳密に言えば、動的な HTML コンテンツをテーブルに格納することは悪い考えではありません。これは一般的な方法です。ただし、ヘッダーやナビゲーションなどの静的コンテンツも各ページのテーブルに格納すると、データの重複につながるだけです。
私は個人的に、決して変更しない部分をファイルに保存します。「動的」になりがちな部分は、テーブルに保存します。jquery-ajaxを使用してTinyMCE経由で追加/編集します。
私がそれを行う方法の例:
ファイル: page_view.php
<?php
class Page_View // <- This isn't MVC
{
private $data = array();
public function render()
{
include('page_template.phtml');
exit();
}
private function getTitle()
{
return $this->data['title'];
}
private function getBody()
{
return $this->data['body'];
}
private function getStaticBlock($file)
{
include($file);
}
public function setBody($body)
{
$this->data['body'] = $body;
}
public function setTitle($title)
{
$this->data['title'] = $title;
}
}
ファイル: page_template.phtml ?>
<!DOCTYPE html>
<html>
<head>
<title><?php echo $this->getTitle(); ?></title>
<?php $this->getStaticBlock('/templates/blocks/header.phtml'); ?>
<body>
<div id="navigation">
<?php $this->getStaticBlock('/templates/blocks/navigation.phtml'); ?>
</div>
<div id="content"><?php echo $this->getBody(); ?></div>
</body>
</head>
</html>
使用例:
<?php
// $data is what you got from a table
$page = new Page_View();
$page->setTitle($data['title']);
$page->setBody($data['body']);
$page->render();