Joomla แสดงข้อความ Deprecated ซ้ำ ๆ ปิดหรือแก้อย่างไรให้ถูกวิธี?

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

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

❶ ตรวจว่าข้อความมาจาก Joomla หรือ PHP

ดูข้อความ Deprecated ให้ครบ โดยสังเกตชื่อไฟล์ พาธ และบรรทัดที่แจ้ง หากมีชื่อโฟลเดอร์ของส่วนเสริมหรือเทมเพลต ให้เริ่มตรวจรายการนั้นก่อน

  • พาธอยู่ในโฟลเดอร์ส่วนเสริม: ตรวจเวอร์ชันและประกาศอัปเดตจากผู้พัฒนา
  • พาธอยู่ในโฟลเดอร์เทมเพลต: ตรวจว่ารองรับเวอร์ชัน Joomla และ PHP ที่ใช้อยู่หรือไม่
  • ข้อความอ้างถึงไฟล์ PHP หรือไลบรารีอื่น: ให้โฮสติ้งหรือผู้พัฒนาตรวจร่วมกับ Error Log

อย่าลบโค้ดตามบรรทัดที่แจ้งทันที เพราะอาจเป็นโค้ดของ Joomla หรือไลบรารีที่ส่วนเสริมต้องใช้

❷ อัปเดตส่วนเสริมหรือเทมเพลตที่เป็นต้นเหตุ

หากพบชื่อส่วนเสริม ให้ตรวจว่ามีเวอร์ชันใหม่ที่รองรับ Joomla และ PHP รุ่นปัจจุบันหรือไม่ ก่อนอัปเดตให้สำรองไฟล์และฐานข้อมูล แล้วทดสอบเว็บไซต์หลังอัปเดต

หากไม่มีเวอร์ชันแก้ไข ให้ติดต่อผู้พัฒนาส่วนเสริมพร้อมส่งข้อความเตือนฉบับเต็ม หากเป็นเทมเพลตที่พัฒนาขึ้นเอง ให้ผู้พัฒนาปรับโค้ดที่เรียก API ซึ่ง Joomla หรือ PHP เลิกแนะนำแล้ว

การอัปเดต Joomla หรือ PHP เพียงอย่างเดียวอาจไม่ทำให้ข้อความหาย หากส่วนเสริมที่เรียกใช้โค้ดเก่ายังไม่ได้รับการแก้ไข

❸ ซ่อนข้อความจากผู้เข้าชมระหว่างแก้ปัญหา

หากข้อความปรากฏบนหน้าเว็บไซต์จริง ให้ผู้ดูแลตรวจการตั้งค่ารายงานข้อผิดพลาดของ Joomla ที่ System → Global Configuration → Server → Error Reporting แล้วเลือกค่าที่เหมาะกับเว็บไซต์ใช้งานจริง โดยทั่วไปให้ใช้ค่าตามระบบเซิร์ฟเวอร์ แทนการแสดงรายละเอียดทั้งหมดบนหน้าเว็บ

หากข้อความยังปรากฏ ให้ผู้ให้บริการโฮสติ้งตรวจการตั้งค่า PHP ว่ามีการแสดง Error หรือ Deprecated ต่อผู้เข้าชมหรือไม่ ควรเก็บข้อผิดพลาดไว้ใน Log เพื่อให้ผู้ดูแลตรวจได้ โดยไม่แสดงพาธไฟล์และรายละเอียดระบบต่อสาธารณะ

อย่าปิดการบันทึกข้อผิดพลาดทั้งหมดเพื่อซ่อนข้อความ เพราะจะทำให้ตรวจปัญหาอื่นได้ยากขึ้น

❹ ใช้ตัวเลือก Log Deprecated API อย่างระมัดระวัง

ใน Joomla บางเวอร์ชันมีตัวเลือก Log Deprecated API ในส่วน Logging ตัวเลือกนี้มีไว้สำหรับนักพัฒนาเพื่อตรวจการเรียก API ที่เลิกแนะนำ ไม่ใช่สวิตช์สำหรับปิดข้อความ Deprecated ที่แสดงบนหน้าเว็บ

หากผู้พัฒนาต้องตรวจรายการเหล่านี้ ควรเปิดบันทึกเฉพาะช่วงวิเคราะห์และตรวจไฟล์ Log หลังทดสอบเสร็จ สำหรับผู้ดูแลทั่วไป ให้เน้นอัปเดตส่วนเสริมหรือส่งรายละเอียดให้ผู้พัฒนาตรวจแทนการเปลี่ยนตัวเลือกนี้โดยไม่ทราบผล

❺ ทดสอบหลังปรับการตั้งค่า

หลังอัปเดตหรือปรับการแสดงข้อผิดพลาด ให้เปิดหน้าเว็บและหน้าแอดมินที่เคยพบข้อความ ตรวจว่าฟังก์ชันสำคัญยังทำงาน และดู Log ว่ามีคำเตือนเดิมเกิดขึ้นอีกหรือไม่

หากคำเตือนหายจากหน้าเว็บแต่ยังอยู่ใน Log แสดงว่าได้ซ่อนการแสดงผลต่อผู้เข้าชมแล้ว แต่ยังควรอัปเดตหรือแก้โค้ดที่เป็นต้นเหตุ ทีมดูแลเว็บไซต์ เช่น ComSiam ควรบันทึกชื่อส่วนเสริมและเวอร์ชันที่ทำให้เกิดคำเตือน เพื่อใช้ตรวจซ้ำหลังอัปเดตครั้งถัดไป

สรุป

ข้อความ Deprecated เป็นคำเตือนว่าโค้ดบางส่วนล้าสมัย ให้ใช้พาธและชื่อไฟล์ในข้อความหาส่วนเสริมหรือเทมเพลตต้นเหตุ แล้วอัปเดตหรือให้ผู้พัฒนาแก้ไข สำหรับเว็บไซต์ใช้งานจริงให้ปิดการแสดงรายละเอียดทางเทคนิคต่อผู้เข้าชม แต่เก็บ Error Log ไว้ตรวจปัญหา