วิธีใช้ class Template ตอนที่ 5 การใช้งานผ่าน class, function


ตอนนี้ได้อะไรบ้าง

  • $tp->setGlobal(false);
  • $tp->setGlobal(true);
  • $tp->assign();

หลักการทำงาน
– เมื่อขนาดโปรเจคท์ใหญ่ขึ้นมีความจำเป็นต้องแยกเป็น class, function ออกมา จะต้องใช้ $tp->setGlobal(false); และตามด้วย $tp->assign(); เพื่อระบุค่าให้ตัวแปร
– มีลักษณะการทำงาน 2 แบบได้แก่
1. ใช้ $tp->assign(); เฉพาะการแทนค่าใน class, function
2. ใช้ $tp->assign(); ทุกกรณี

ผลการทำงาน แบบที่ 1
ผลการทำงาน แบบที่ 2

ทั้ง 2 แบบได้ผลลัพท์เหมือนกัน

<!DOCTYPE html>
<html>
<head>
<title>วิธีใช้งาน จาก class, function</title>
<link rel="stylesheet" href="module/bootstrap/bootstrap.min.css">
</head>
<body>

<div class="container">
    <h3>วิธีใช้งาน จาก class, function</h3>

    <ul class="list-group">    
        <li class="list-group-item">1</li>
        <li class="list-group-item">2</li>
        <li class="list-group-item">3</li>
        <li class="list-group-item">4</li>
        <li class="list-group-item">5</li>
    </ul>
</div>

<script src="module/jquery/jquery.min.js"></script>
<script src="module/bootstrap/bootstrap.min.js"></script>
</body>
</html>

_tp_other.html

<!DOCTYPE html>
<html>
<head>
<title>$title</title>
<link rel="stylesheet" href="module/bootstrap/bootstrap.min.css">
</head>
<body>

<div class="container">
    <h3>$title</h3>

    <ul class="list-group">
    <!--SiXhEaD:data-->
        <li class="list-group-item">$no</li>
    <!--/SiXhEaD:data-->
    </ul>
</div>

<script src="module/jquery/jquery.min.js"></script>
<script src="module/bootstrap/bootstrap.min.js"></script>
</body>
</html>

other1.php

<?php
require 'module/SiXhEaD.Template.php';

$tp = new Template('_tp_other.html');

$title = 'วิธีใช้งาน จาก class, function';
_setData();

$tp->display();
exit;

function _setData() {
    global $tp;

    $tp->setGlobal(false);
    $tp->block('data');
    for ($no = 1; $no < 6; $no++) {
        $tp->assign('no', $no);
        $tp->apply();
    }
    $tp->setGlobal(true);
}

other2.php

<?php
require 'module/SiXhEaD.Template.php';

$tp = new Template('_tp_other.html');
$tp->setGlobal(false);

$title = 'วิธีใช้งาน จาก class, function';
$tp->assign('title', $title);
_setData();

$tp->display();
exit;

function _setData() {
    global $tp;

    $tp->block('data');
    for ($no = 1; $no < 6; $no++) {
        $tp->assign('no', $no);
        $tp->apply();
    }
}