Codeigniter-เทคนิค Controller Codeigniter

เทคนิค Controller Codeigniter

การใช้งาน Controller
Controller คือส่วนที่สำคัญมากสำหรับเว็บไซต์เราเพราะ Controller จะเป็นส่วนติดต่อกับผู้ใช้งานเพื่อรอรับข้อมูลต่างๆ ที่ได้รับจากผู้ใช้งาน จากนั้นจะเป็นตัวกำหนดในการจัดการกับข้อมูลก่อนที่จะส่งค่าข้อมูลต่างๆ ไปจัดการกับฐานข้อมูลที่ Model เมื่อจัดการกับฐานข้อมูลเสร็จแล้ว ส่งค่าข้อมูลที่มีการอัพเดทล่าสุดกลับมายัง Controller เพื่อนำมาจัดการกับข้อมูลต่างๆ จากนั้นเมื่อได้ตามที่ต้องการจึงนำค่าข้อมูลไปแสดงผลที่ View เพื่อติดต่อกับผู้ใช้งาน การเข้าถึง Controller จะสามารถเข้าถึงแบบเจาะจง Function ภายใน Controller ก็ได้และยังสามารถส่งค่า parameter ตามไปด้วยได้ เช่น พวกค่าคีย์หลัก,คีย์หน้า,คีย์ค้นหา อื่นๆ รูปแบบการเข้าถึง Controller จะทำงานผ่านการเรียกจาก URL โดยมีรูปแบบดังนี้ครับ

http://domain/index.php/controller/fuction/parameter
controller คือ ชื่อ Controller หรือชื่อ Class ของไฟล์ PHP
fuction คือ ชื่อ Fuction ที่อยู่ใน Controller นั้นๆ
parameter คือ ค่าของตัวแปรที่ส่งมาให้กับฟังก์ชันที่อยู่ภายในคราส

โครงสร้างของ Controller
Controller ของ Codeigniter ก็คือ Class ของ PHP ซึ่งลักษณะเหมือนการสร้างคราสทั่วไปครับ ตัวอย่างของไฟล์ Controller สามารถดูได้จาก application/controllers/welcome.php ซึ่งเป็นตัวอย่างที่มาพร้อมกับโปรแกรมมีรายละเอียดดังนี้<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Welcome extends CI_Controller {
   function __construct() {
      parent::__construct();
   }
   function index() {
      $this->load->view('welcome_message');
   }
}

หลักการตั้งชื่อ Controller
จากตัวอย่างของโปรแกรมชื่อคราส Welcome โดยสืบทอดจากคราสหลัก CI_Controller ของโปรแกรม Codeigniter ซึ่งชื่อ Controller จะต้องขึ้นต้นด้วยตัวอักษรพิมพ์ใหญ่ เช่น Good, Goodbye, Sunday, Monday Hello_world เป็นต้น การตั้งชื่อควรคำนึงถึงการเรียกใช้งานด้วยเพราะถ้าชื่อ Controller ยาว URL ที่เรียกก็จะยาวด้วยเช่นกัน ส่วนชื่อของไฟล์นั้นจะต้องเป็นตัวอักษรพิมพ์เล็กทั้งหมดและต้องมีนามสกุล .php จากตัวอย่างชื่อ welcome.php บันทึกใน application/controllers

การสร้างโฟลเดอร์คอนโทรลเลอร์ย่อย Folder Controller
ในกรณีที่ต้องการแบ่งโฟลเดอร์ของ controller เพราะเว็บไซต์ขนาดใหญ่มีจำนวนมากเกินไป สามารถจัดกลุ่มของไฟล์ได้ง่ายๆ โดยการสร้างโฟลเดอร์ให้กับ controller ที่มีการทำงานชนิดเดียวกัน เช่น สร้างโฟลเดอร์ชื่อ admin ไว้ใน application/controllers/ และเก็บรวบรวมไฟล์ controller ต่างๆ เช่นapplication/controllers/admin/main.php    //controller main
application/controllers/admin/add.php    //controller add
application/controllers/admin/edit.php    //controller edit
เวลาเรียกใช้งาน controller สามารถทำได้ดังนี้http://localhost/domain/index.php/admin/main.php    //controller main
http://localhost/domain/index.php/admin/add.php    //controller add
http://localhost/domain/index.php/admin/edit.php    //controller edit
การกำหนดค่า Constructor in Controller
   function __construct() {
      parent::__construct();
      $this->load->model('user');//เรียกใช้ Model ชื่อ user
      $this->load->model('admin/member');//เรียกใช้ Model ชื่อ member อยู่ในโฟลเดอร์ admin
      $this->load->helper('form');//เรียกใช้ Helper ชื่อ form
      $this->load->library('facebook');//เรียกใช้ Library ชื่อ facebook
   }

นี่เป็นตัวอย่างการกำหนดค่า Constructor โดยฟังก์ชันนี้จะทำงานอันดับแรกเมื่อมีการเข้าสู่ Controller ซึ่งภายในฟังก์ชัน Constructor จะต้องมี parent::CI_Controller() ซึ่งเป็นรูปแบบของโปรแกรม Constructor มีหน้าที่หลักคือเรียกใช้งาน model, helper, library ฯลฯ ที่ต้องการใช้ภายใน Controller นั้นๆ โดยการเรียกใช้งานลักษณะนี้คล้ายกับการกำหนดค่า Autoload ของโปรแกรม Codeigniter แต่ การทำงานของ Autoload จะโหลด model, helper, library ที่เรากำหนดค่าไว้ทั้งหมดทุกครั้งที่เปิดหน้าเว็บ ทำให้การทำงานและการแสดงผลของเว็บไซต์ช้าครับ ซึ่งผมจะกล่าวรายละเอียดในภายหลังครับ

การสร้างฟังก์ชัน Function in Codeigniter
Function ควรตั้งชื่อเป็นตัวอักษรพิมพ์เล็กทั้งหมด โดยแต่ละฟังก์ชันจะแบ่งหน้าที่การทำงานอย่างชัดเจน เช่น Controller Member อาจจะฟังก์ชันย่อย add(), edit(), del() เป็นต้นครับ ตัวอย่างของโปรแกรมจะเป็นฟังก์ชัน index() และทำการเรียกใช้ view ชื่อ welcome_message อยู่ในโฟลเดอร์ application/view ครับ
   function index() {
      $this->load->view('welcome_message');
   }
   function add() {
      $this->load->view('page_add');
   }
การสร้างฟังก์ชันเพื่อรับค่าตัวแปร Function & Parameter
เราสามารถสร้างฟังก์ชันเพื่อรับค่าง่ายๆ ดังนี้ครับ   function show($firstname=null,$lastname=null) {
      echo 'Hello '. $firstname." ".$lastname;
   }
จากตัวอย่างเป็นการสร้างฟังก์ชัน show และทำการรับค่าตัวแปร firstname และ lastname จาก URL ครับ การส่งค่าจาก URL สามารถทำได้ดังนี้ครับ
http://localhost/domain/index.php/welcome/show/ponthakorn/pipitthong


credit : http://www.iponthakorn.com/2015/08/codeigniter-controller.html?m=1

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

วิธีการกรอกใบสมัครงาน (application form) ภาษาอังกฤษ

วิธีแก้ปัญหา Internal Server Error ตอนรัน PHP กับ Apache Server MSQL

[PHP] คำสั่ง NUMBER_FORMAT ใส่จุดทศนิยม และ คอมม่าให้กับตัวเลข