ผ่าพิสุจน์ GCMS4 ตอน 2 ไฟล์ Load

    ต้องขออภัยที่หายไปนานมากๆ ตาลอยมาเป็นเดือนๆ แล้ว งานรัดตัวซะแทบไม่มีเวลานอนเลย
    จากบทความแรกที่ผ่านมาได้ทิ้งท้ายไว้ว่าในบทต่อไป(บทนี้เป็นต้นไป)จะขออธิบายโค้ดในรูปแบบของการสรุป
    เนื่องจากความยาวของโค้ดในแต่ละไฟล์นั้นค่อนข้างที่จะยาวหลายบรรทัดมากๆ ยากที่จะอธิบายจบ
    ในบทความเดียวแล้วเข้าใจแจ่มแจ้ง อีกอย่างหากเขียนมากเกินไปจะทำให้ผู้อ่านเกินความสับสนเอาเปล่าๆ
     
    สรุปการทำงานอธิบายตามบรรทัด
    ไฟล์นี้จะถูกเรียกใช้ในบรรทัดที่ 10 ของไฟล์ index.php
    โค้ดในไฟล์นี้จะถูกตีกรอบไว้เป็นบันได 3 ขั้นตามรูปแบบของระบบเทมเพลท 
     
    - กระบวนการเตรียมข้อมูล (ตรงนี้และที่ไล่กันยาวที่สุดหาที่มาที่ไปกันวุ่นวายที่สุด)
    - กระบวนการเลือกใช้เทมเพลทที่กำหนดโดยแทนที่ข้อมูลต่างๆ ลงไปในจุดที่กำหนด (ยังคงยุ่งยากซับซ่อนอยู่แต่
      ก็ความซับซ้อนก็แคบลงมากหากข้อมูลพร้อม)
    - แสดงผล (คำสั่งเดียวจบ)
     
    1 เริ่มต้น PHP  
    2 ถ้ามีการประกาศตัวแปรคงที่ ที่ชื่อว่า MAIN_INIT ให้ปฏิบัติตามคำสั่งถัดไป
    3 เรียกไฟล์ bin/class.gcms.php เข้ามาร่วมทำงานเพื่อให้สามารถเรียกใช้งานคลาสต่างๆ ได้
    4 เรียกไฟล์ bin/class.mysql.php เข้ามาร่วมทำงานเพื่อให้เรียกใช้งานคลาสที่ติดต่อกับ MySQL
    5 สร้างอ็อปเจ็กท์โดยให้ชื่อว่า $db โดยใช้คลาส sql (ถูกสร้างไว้ในไฟล์ bin/class.mysql.php) และ
      ส่งค่าอากิวเม้นท์เป็นค่าที่ถูกประกาศไว้ใน bin/config.php
    6 ประกาศตัวแปรชื่อ $time ค่าเท่ากับ $db->timer_start() เพื่อจับเวลาเริ่มต้นกระบวนการทำงาน
      (timer_start เป็นเมธอดของคลาส db ถูกสร้างขึ้นในบรรทัดที่ 219 ในไฟล์ bin/class.mysql.php)
    7 เรียกไฟล์ "language/".LANGUAGE.".php" เข้ามาร่วมทำงานเพื่อแสดงภาษาตามที่ได้กำหนดไว้
    8 ประกาศตัวแปรแบบอาร์เรโดยให้ชื่อว่า $meta ยังไม่กำหนดค่าใดๆ
    9 ประกาศตัวแปรแบบอาร์เรโดยให้ชื่อว่า $script ยังไม่กำหนดค่าใดๆ
    10 ประกาศตัวแปรแบบอาร์เรโดยให้ชื่อว่า $mainmenu ยังไม่กำหนดค่าใดๆ
    11 ประกาศตัวแปรแบบอาร์เรโดยให้ชื่อว่า $install_modules ยังไม่กำหนดค่าใดๆ
    12 ประกาศตัวแปรแบบอาร์เรโดยให้ชื่อว่า $install_owners ยังไม่กำหนดค่าใดๆ 
 
    ________________________________________________________________________________
    ================================================================================
    หากเทียบกับ GCMS3 จะเห็นว่าโค้ดต่างๆ ที่อยู่ในไฟล์ index.php จะถูกย้ายมาไว้ที่ไฟล์นี้ทั้งหมดแต่หลายๆ ส่วน
    ค่อนข้างเปลี่ยนแปลงไปพอสมควร แต่หากเรามองกรอบการทำงานออกก็พอจะช่วยให้เราเดาทางไปได้ง่ายขึ้น

เรื่องที่เกี่ยวข้อง

ความคิดเห็น
^