php-codeigniter-framework

codeigniter hooks ทำความเข้าใจและใช้งาน hooks point

codeigniter hooks ทำความเข้าใจและใช้งาน hooks point



สำหรับ hooks ใน codeigniter เป็นฟีเจอร์ที่มีไว้สำหรับปรับเปลี่ยนลำดับขั้นตอนการทำงานหรือแทรกความสามารถ
บางอย่างเข้าไปแบบมีลำดับขั้นตอน โดยที่ไม่ต้องเข้าไปยุ่งเกี่ยวกับไฟล์หลัก ตัวอย่างเช่น อาจมีบางกรณีที่เราต้องการ
เพิ่มข้อมูลเข้าไปในส่วนของ controller ใด ๆ ก่อนที่จะเข้าสู่การทำงานของ constructure ฟังก์ชั่น

ของ controller นั้น ๆ หรืออาจจะต้องการเพิ่มการทำงานบางอย่างเข้าไปหลังจากที่ constructure ทำงานเสร็จแล้ว
หรือแม้กระทั้ง controller นั้น ๆ ได้ทำงานเสร็จแล้วค่อยเรียกการทำงานบางอย่างเข้าไป ก็สามารถทำได้ด้วย
Hooks class เช่นเดียวกัน

เปิดใช้งาน hooks

สำหรับการเปิดใช้งาน hooks ให้เปิดไฟล์ application/config/config.php และเปลี่ยนตัวแปร enable_hooks
จากค่าปกติที่เป็น FALSE ให้เป็น TRUE


สร้างไฟล์ hooks class

การสร้าง hooks คลาสนั้น ให้เราสร้างไว้ในโฟลเด้อ application/hooks/ ในที่นี้ให้เราทดลองสร้างไฟล์ WebHook.php
โดยที่ภายในคลาสนี้เราจะต้องสร้าง method มาเพื่อระบุการทำงานใน hooks แต่ละขั้นตอนด้วย จะได้โค๊ดประมาณนี้

application/hooks/WebHook.php


เรียกใช้งานแบบเป็นลำดับขั้นตอนของ hooks class

หลังจากได้คลาสและฟังก์ชั่นที่จะเรียกใช้งานแล้ว ให้เราไปกำหนดลำดับการทำงานที่ไฟล์
สำหรับการสั่งให้คลาส WebHook ทำงานแต่ละเมธอดแบบเป็นลำดับขั้นนั้นเราจะเขียนคำสั่งใน hooks.php ได้ดังนี้

application/config/hooks.php


Hook Points

ในการเรียกใช้งาน hook class นั้น จะต้องมีตัวแปรสำหรับเป็นตัวกำหนดลำดับขั้นตอนการทำงาน
เราเรียกสิ่งนั้นว่า Hook Points ใน codeigniter framework มี Hook Points ให้เราเลือกใช้งานอยู่หลัก ๆ ดังนี้

  • pre_system ถูกเรียกตั้งแต่แรกเริ่มของการทำงานระบบ
  • pre_controller ถูกเรียกทันทีก่อนที่ตัวควบคุม (controller) ใดๆจะถูกเรียก
  • post_controller_constructor ถูกเรียกทันทีเมื่อ constructructor ทำงาน
  • post_controller ถูกเรียกทันทีเมื่อ controller ทำงานเสร็จสมบรูณ์
  • post_system ถูกเรียกหลังสิ้นสุดการทำงานของระบบหลักทั้งหมด

hook points อื่น ๆ ท่านสามารถอ่านรายละเอียดเพิ่มเติมได้ที่ https://www.codeigniter.com/user_guide/general/hooks.html

สร้าง Controller มาทดสอบการทำงาน

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

application/controllers/Home.php

ผลลัพธ์


ทดสอบลำดับขั้นตอนการทำงานของ Hook Points

เขียนฟังก์ชั่นเพิ่มเติมสำหรับเรียกใช้งานแต่ละ point ใน application/hooks/WebHook.php ดังนี้
application/hooks/WebHook.php

เรียกใช้งานฟังก์ชั่นแบบลำดับขั้นตอนโดยกำหนด hook points ที่ไฟล์ application/config/hooks.php ดังนี้
application/config/hooks.php

ผลลัพธ์

วิธีใช้งาน-hooks-ใน-codeigniter
หลังจากที่เราทดสอบการทำงานแบบนี้แล้ว จะทำให้เราทราบว่า hook point ไหน ทำงานก่อน – หลัง และทำงานตอนไหน
เมื่อทราบอย่างนี้แล้วก็จะสามารถทำความสามารถของ hooks ใน codeigniter framework ไปประยุกต์ใช้ในการทำงาน
พัฒนาเว็บไซต์ในรูปแบบต่าง ๆ ได้ดียิ่งขึ้น และยังเป็นการใช้ความสามารถของ codeigniter ได้อย่างเต็มที่อีกด้วย

กระทู้ใกล้เคียง

สอน codeigniter ติดตั้งไลบรารี่และส่งอีเมลด้วย PHP... สอน codeigniter ติดตั้งไลบรารี่และส่งอีเมลด้วย PHPMailler การส่งอีเมลเป็นฟังก์ชั่นการทำงานอีกส่วนหนึ่งที่มักจะมีในขั้นตอนของการพัฒนาเว็บไซต์ ตัวอย่...
สอน codeigniter ทำระบบสมัครสมาชิก... สอน codeigniter เข้าใจโครงสร้างของ CI ด้วยระบบสมัครสมาชิก สอน code igniter เขียนระบบสมัครสมาชิกด้วย codeigniter framework แบบ Step By Step ในบท...
ทำเว็บไซต์ให้ปลอดภัย Codeigniter Security... ทำเว็บไซต์ให้ปลอดภัย Codeigniter Security อย่าลืมที่จะเพิ่มความปลอดภัยให้เว็บไซต์ ด้วยคุณสมบัติด้านความปลอดภัยที่ codeigniter มีให้อยู่แล้ว Fram...
วิธีใช้งาน core เพิ่มคุณสมบัติให้ codeigniter... วิธีใช้งาน core ใน codeigniter เพิ่มคุณสมบัติระบบหลัก สำหรับการพัฒนาเว็บไซต์ด้วย framework ไม่ว่าจะใช้เฟรมเวิร์คอะไรบนโลกนี้ โดยพื้นฐานแล้วก็เพื่อก...