ฉันกำลังทำงานในโปรเจ็กต์ที่ใช้สถาปัตยกรรม MVC (ไม่ได้ใช้เฟรมเวิร์กใดๆ เลย) และทำงานได้ดีในขณะนี้ แต่ปัญหาคือจะรวมเอ็นจิ้นเทมเพลตทวิก php ได้อย่างไร ฉันกำลังโพสต์โครงสร้างเลย์เอาต์ของโปรเจ็กต์ของฉันและโค้ดที่ฉันใช้ในการโหลดเทมเพลตและเรนเดอร์มุมมอง โปรดพิจารณาและแนะนำโซลูชันที่เหมาะสมให้ฉันเพื่อรวมทวิกเข้ากับสถาปัตยกรรม php mvc
โครงสร้างโครงการ
โครงการ1
- app
- controllers
- welcome_controllers.php
- โมเดล
- views
- welcome
- index.html.twig
- templates
- layout.html.twig
- welcome
- controllers
- กำหนดค่า
- libraries
- Twig(twig files resides here)
- router.php คลาสพื้นฐานของคอนโทรลเลอร์
ตัวควบคุมคลาส {
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
ยินดีต้อนรับคลาสคอนโทรลเลอร์
class WelcomeController extends AppController{
public function index(){
$this->loadTwig();
$this->twig->render('welcome/index.html.twig');
}
}
ไฟล์index.html.twig
{% extends '../templates/layout.html.twig' %}
{% block title %}
Index Page Title
{% endblock %}
ไฟล์layout.html.twig
<html>
<head>
<title>{% block title %}{% endblock %} - My Webpage</title>
</head>
<body>
base template text
</body>
</html>
ตอนนี้ ฉันได้กำหนด templatelayout.html.php ในโฟลเดอร์ views/templates แล้ว และฉันต้องการสืบทอดหน้ามุมมองทั้งหมดสำหรับคอนโทรลเลอร์จากโฟลเดอร์นั้น โปรดมีคนช่วยฉันหากใช้สิ่งนี้มาก่อนหรือมีความคิดเกี่ยวกับเรื่องนี้