เข้าใจโครงสร้าง Kotchasan วิธีแก้ไขหน้าเพจและโค้ดที่เกี่ยวข้อง

เข้าใจโครงสร้าง Kotchasan วิธีแก้ไขหน้าเพจและโค้ดที่เกี่ยวข้อง

มีคำถามบ่อยครั้งเกี่ยวกับการแก้ไขหน้าใดหน้าหนึ่งของโปรแกรมที่สร้างด้วย Kotchasan ว่าต้องแก้ที่ไฟล์ใด แม้ว่าผมจะได้เขียนอธิบายไว้ใน คู่มือ Router หัวใจของเฟรมเวิร์ค แต่ดูเหมือนว่าหลายคนอาจจะไม่ได้อ่าน ดังนั้น ผมจะสรุปให้ตรงนี้อีกครั้ง

โครงสร้าง URL และไฟล์ที่เกี่ยวข้อง

Kotchasan ใช้ URL รูปแบบเดียว ในการเข้าถึงหน้าเพจต่างๆ โดยโครงสร้าง URL ที่พบบ่อยคือ

https://domain.com/index.php?module=<directory>-<page>

เมื่อเรียก URL ข้างต้น เฟรมเวิร์คจะไปเรียกไฟล์

modules/<directory>/controllers/<page>.php

โดยเมธอด render หรือคลาส \Directory\Page\Controller::render จะทำงานเป็นอันดับแรก แล้วจึงเรียกคลาสอื่นๆ ที่เกี่ยวข้อง ได้แก่

  1. View (แสดงผลหน้าเพจ)

    • ไฟล์: modules/<directory>/views/<page>.php
    • คลาส: \Directory\Page\View
  2. Model (จัดการฐานข้อมูลและข้อมูลที่ใช้ในเพจ)

    • ไฟล์: modules/<directory>/models/<page>.php
    • คลาส: \Directory\Page\Model

กรณีไม่มีการระบุ directory

หากไม่มี directory ใน URL เช่น

https://domain.com/index.php?module=page

ระบบจะไปเรียกใช้ไฟล์ที่อยู่ใน ไดเรกทอรี index เช่น

\Index\Controller\Page

หน้าที่ของแต่ละส่วนใน MVC

  • Controller (\Directory\Page\Controller)

    • ตรวจสอบสิทธิ์การเข้าถึงเพจ
    • กำหนดส่วนหัวของหน้า เช่น Title, Breadcrumbs, เมนู
    • ส่งข้อมูลไปยัง View
  • View (\Directory\Page\View)

    • จัดการแสดงผล เช่น ตาราง หรือ ฟอร์ม
  • Model (\Directory\Page\Model)

    • ดึงข้อมูลจากฐานข้อมูลให้กับ View
    • รับค่าจากตารางหรือฟอร์มที่ถูกส่งมา

โครงสร้าง URL สำหรับการเรียกใช้ Model

นอกจาก URL แบบปกติแล้ว อาจพบ URL ในรูปแบบ

index.php/<directory>/model/<page>/action

ซึ่งจะเป็นการเรียกใช้เมธอด action ใน Model ที่เกี่ยวข้อง

modules/<directory>/models/<page>.php

โดยทั่วไป URL นี้จะใช้สำหรับ Action ของตาราง เช่น บันทึก ลบ หรืออัปเดตข้อมูล

สรุป

หากต้องการแก้ไขหน้าเพจใดๆ ใน Kotchasan ให้วิเคราะห์จาก URL แล้วไปแก้ไขที่ Controller, View หรือ Model ของเพจนั้นๆ ตามหลักการของ MVC

0SHAREFacebookLINE it!