多くの静的コンテンツで構成されている Web サイトを扱っています。サイトについて私を悩ませていることの 1 つは、重複/1 回限りのマークアップの量であり、UI を変更または更新する必要があるたびに、多くの異なるファイルを変更し、変更していないことを確認する必要があります。何でも壊します。Web サイトのコンテンツを PHP サーバーに移動し、サイトのコンテンツを再編成して仕事を楽にすることを検討していました。
/* これも私にとっては練習のようなものです。私はPHPで足を濡らしたいと思っていました。このため、既製のフレームワークを使用しないことにしました。*/
次のパターンは、静的な Web サイトに使用しても問題ありませんか? つまり、Web サイトを管理するためのシンプルなフレームワークが必要で、Web サイトの UI をコンテンツから分離したい場合、これはそれを実現する合理的な方法でしょうか? 私は何かを見落としましたか?
次のように、Web サイトの各ページのコンテンツを宣言したいとします。
/* begin contentStub.php */
<?php $headerUtil->setTitle("Hola Mundo!"); ?>
<p>Hello world</p>
/* end contentStub.php */
また、サイトに次のような単純なテンプレートを使用したいとします。
/* begin UITemplate.php */
<!DOCTYPE html>
<html>
<head>
<title><?php echo($headerUtil->getTitle()); ?></title>
</head>
<body>
<?php echo($content); ?>
</body>
</html>
/* end UITemplate.php */
ここで、auto_prepend_file に次のファイルを使用するように PHP ディレクティブを設定したとします。
/* begin file: prepend.php */
<?php
class HeaderUtil
{
private $title;
public function __construct()
{
$this->title = "new page";
}
public function getTitle(){return $this->title;}
public function setTitle($title){$this->title = $title;}
//TODO: Add methods/collections to deal with css/js/keywords
}
$headerUtil = new HeaderUtil();
ob_start();
include($_SERVER['SCRIPT_FILENAME']);
$content = ob_get_contents();
ob_end_clean();
include("UITemplate.php");
die();
?>
/* end file: prepend.php */
この例は、期待どおりに実行されるようです。これは、PHP を使用して Web サイトの UI をコンテンツから分離する合理的な方法ですか? より具体的には、私の要件が変更されていないと仮定すると、私のアプローチを使用して、セキュリティ、安定性、またはリソース枯渇の明らかな、または重大なリスクに直面することはありますか?
質問の動機: 私は Coldfusion の経験が少しあり、以前は Java ServerFaces 2 を使用していました。これらのテクノロジでは、スレッド化/スコープが重要であり、どの言語でもファイル アクセス時間が重要です。ここで何か不足していますか?