Eğer Cevabınız EVET, sınıf mirası nasıl çalıştığını aşina varsayarsak, PHP bunu destekler. Django şey overkill olabilir, ama ben zaten bunu yapmak için nasıl gerçek hızlı sizi denemek ve doldururuz.
Not: Ben burada bir denetleyici kullanarak içine gitmiyorum. Sayfa bir blog ise Açıkçası, bir blogpage nesne yerine sadece normal bir sayfa oluşturmak için gidiyoruz. AYRICA, ben senin için sıfırdan bu kadar yazdı, bu yüzden hiçbir garanti çalışıyor .. ama umarım bu size bazı fikirler verecektir.
<?php
class Page
{
protected $content_main; // Your main page content.
protected $content_leftbar; // Your left sidebar content.
protected $content_title; // Your content title.
protected $template; // Template data.
Function getTemplate() {
// Logic for determining the template to be used in here.
// Let's say it returns the location of a cached version of the template.
return $template_file_path;
}
Function populateContentBlocks() {
// This populates the $content_BLOCK variables with data using some default
// logic you have for determining where to grab that data from.
}
Function loadPage() {
// Populates variables.
$this->populateContentBlocks();
// Fetches template
include( $this->getTemplate() );
}
} // END class
Class blogPage extends Page {
Function getTemplate() {
// Logic for determining the template to be used in here.
// Let's say it returns the location of a cached version of the template.
// OVERRIDE THE DEFAULT TEMPLATE LOGIC OF THE PAGE WITH WHAT IS RELEVENT TO
// BLOGPAGE.
}
}
?>
Template File Example:
<html>
<head>
<title><?php echo $this->content_title; ?></title>
</head>
<body>
<div class="sidebar"><?php echo $this->content_sidebar; ?></div>
<div class="mainContent"><?php echo $this->content_main; ?></div>
</body>
</html>