วิธีใช้งาน core เพิ่มคุณสมบัติให้ codeigniter

php-codeigniter-framework
php-codeigniter-framework

วิธีใช้งาน core ใน codeigniter เพิ่มคุณสมบัติระบบหลัก

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



codeigniter framework เป็นอีกหนึ่งเฟรมเวิร์คที่มีมาตรฐานหรือกรอบการทำงานที่ชัดเจนแต่ถึงกระนั้นผู้พัฒนา
เฟรมเวิร์คก็ออกแบบโครงสร้างให้รองรับการพัฒนาต่อยอดที่ยืดหยุ่น จะเห็นได้จากการที่เราสามารถเพิ่มความสามารถ
ของระบบได้ด้วยการใช้งาน core system ใน codeigniter


ตั้งค่า core class

ก่อนที่เราจะทำการเพิ่มคุณสมบัติใด ๆ เข้าไปใน native libraries ของ codeigniter นั้น ให้เข้าไปตั้งค่า
ใน application/config/config.php เพื่อกำหนด prefix subclass หรือคำนำหน้าของคลาสที่เราจะสร้าง
ขึ้นมา โดยค่าเริ่มต้นของ codeigniter ที่สร้างให้เราคือ “MY_” ( จะเปลี่ยนก็ได้ไม่เปลี่ยนก็ได้ )

$config['subclass_prefix'] = 'MY_';


สร้าง core class

ทดลองสร้าง core class โดยสืบทอดคุณสมบัติของ native libraries คือคลาส CI_Controller
วิธีสร้าง core class ให้สร้างไว้ใน application/core/MY_Controller.php

class MY_Controller extends CI_Controller {

        public function __construct()
        {
                parent::__construct();
        }
}


ใช้งาน core ใน Controller

ก่อนหน้านี้เราได้สร้าง core คลาสชื่อว่า MY_Controller ซึ่งสืบทอดคุณสมบัติต่าง ๆ ของ CI_Controller
เราสามารถนำ MY_Controller ไปใช้ใน Controller ใด ๆ ก็ได้ โดยเขียนโค๊ดได้ดังนี้

class Home extends MY_Controller {

        public function __construct()
        {
                parent::__construct();
        }

        public function index()
        {
                $this->load->view('home_view');
        }
}

ใช้งาน core method ใน Controller ได้เลย

เราสามารถสร้างเมธอดหรือฟังก์ชั่นใน MY_Controller และนำมาใช้งานใน Controller ได้ทันที

application/core/MY_Controller.php

class MY_Controller extends CI_Controller {

        public function __construct()
        {
                parent::__construct();
        }
        public function changeLang()
        {
                
        }
}

ใช้งานเมธอด changeLang ใน application/controller/Home.php

class Home extends MY_Controller {

        public function __construct()
        {
                parent::__construct();
                $this->changeLang();
        }

        public function index()
        {
                $this->load->view('home_view');
        }
}