Kotchasan Framework Documentation

Kotchasan Framework Documentation

View Class - ระบบจัดการหน้าจอแสดงผล

TH 03 Feb 2026 17:02

View Class - ระบบจัดการหน้าจอแสดงผล

คลาส View เป็นคลาสพื้นฐานสำหรับการจัดการส่วนแสดงผล (View Layer) ของแอปพลิเคชัน ทำหน้าที่รวบรวมข้อมูล, กำหนด Header, Meta Tags, CSS, JavaScript และประมวลผล Template เพื่อแสดงผลเป็น HTML

Namespace

Kotchasan\View

การทำงาน

คลาสนี้ทำงานร่วมกับระบบ Template โดยทำหน้าที่เป็นตัวกลางในการส่งข้อมูล (Data) ไปยัง Template และจัดการส่วนประกอบต่างๆ ของหน้าเว็บ เช่น <head> และ HTTP Headers

คุณสมบัติหลัก

  1. จัดการ Meta Data: เพิ่ม Meta tags, CSS, และ JavaScript ลงในส่วน <head> ของ HTML
  2. Variable Replacement: แทนที่ตัวแปรใน Template ด้วยข้อมูลที่กำหนด
  3. Response Handling: ส่ง HTTP Headers และแสดงผลเนื้อหา

Public Methods

create()

สร้าง Instance ของคลาส View

public static function create(): static

renderHTML()

ประมวลผลและ Render HTML จาก Template

public function renderHTML(string|null $template = null): string

การทำงาน:

  • แทนที่ตัวแปรพื้นฐาน: {WEBTITLE}, {WEBDESCRIPTION}, {WEBURL}, {SKIN}
  • แทรก Meta, CSS, JS ที่ถูกเพิ่มเข้ามาลงในแท็ก <head>
  • แทนที่ตัวแปรอื่นๆ ที่กำหนดด้วย setContents

setContents()

กำหนดค่าตัวแปรที่จะแทนที่ใน Template

public function setContents(array $array): void

Example:

$view->setContents([
    '/{CONTENT}/' => 'เนื้อหาเว็บไซต์',
    '/{FOOTER}/' => 'ส่วนท้าย'
]);

setMetas() / setHeaders()

กำหนด Meta tags และ HTTP Headers

public function setMetas(array $array): void
public function setHeaders(array $array): void

addCSS() / addJavascript() / addScript()

เพิ่มไฟล์ CSS, JS หรือโค้ด Script ลงในหน้าเว็บ

public function addCSS(string $url): void
public function addJavascript(string $url): void
public function addScript(string $script): void

user-defined helpers

Utility functions สำหรับการเข้าถึงข้อมูลอย่างปลอดภัย

public static function array_value(array $array, string $key, mixed $default = ''): mixed
public static function object_value(object $source, string $key, mixed $default = ''): mixed

back()

สร้าง URL สำหรับย้อนกลับ (Redirect Back) โดยจัดการ Query String ให้เหมาะสม (ตัด action login/logout ออก)

public static function back(array|string $f): string

output()

แสดงผลเนื้อหาและส่ง Headers

public function output(string $content): void

ตัวอย่างการใช้งาน

// สร้าง View
$view = Kotchasan\View::create();

// เพิ่ม CSS/JS
$view->addCSS('style.css');
$view->addScript('console.log("Hello");');

// กำหนดเนื้อหา
$view->setContents([
    '/{TOPIC}/' => 'หัวข้อเรื่อง',
    '/{DETAIL}/' => 'รายละเอียด...'
]);

// แสดงผลโดยใช้ Template 'main'
echo $view->renderHTML(Template::load('', '', 'main'));

ขนาดไฟล์: 263 บรรทัด