Saya sedang mengerjakan proyek yang didasarkan pada arsitektur MVC (tidak menggunakan kerangka apa pun) dan berfungsi dengan baik saat ini, tetapi masalahnya adalah bagaimana mengintegrasikan mesin templat ranting php. Saya memposting struktur tata letak proyek saya dan kode yang saya gunakan untuk memuat template dan merender tampilan. Silakan lihat dan sarankan saya solusi yang tepat untuk mengintegrasikan ranting ke dalam arsitektur php mvc,
Struktur proyek
Proyek1
- app
- controllers
- welcome_controllers.php
- model
- views
- welcome
- index.html.twig
- templates
- layout.html.twig
- welcome
- controllers
- konfigurasi
- libraries
- Twig(twig files resides here)
- router.php Kelas dasar pengontrol
Pengontrol kelas {
var $twig = null; public function loadTwig() { Twig_Autoloader::register(); $loader = new Twig_Loader_Filesystem( array (APP_PATH.'/views/') ); // set up environment $params = array( 'cache' => BASE_PATH.'/cache', 'auto_reload' => true, // disable cache 'autoescape' => true ); $this->twig = new Twig_Environment($loader, $params); }
}
- app
Kelas WelcomeController
class WelcomeController extends AppController{
public function index(){
$this->loadTwig();
$this->twig->render('welcome/index.html.twig');
}
}
file indeks.html.ranting
{% extends '../templates/layout.html.twig' %}
{% block title %}
Index Page Title
{% endblock %}
file layout.html.ranting
<html>
<head>
<title>{% block title %}{% endblock %} - My Webpage</title>
</head>
<body>
base template text
</body>
</html>
Sekarang, saya telah mendefinisikan template layout.html.php di folder views/templates dan saya ingin mewarisi semua halaman tampilan untuk pengontrol darinya. Tolong seseorang bantu saya jika menerapkan hal ini sebelumnya atau punya ide tentang ini.