[CI Day 2] การ plug library เข้าไปรวมกับของ Codeigniter

มีหลายๆ คนเคยบอกว่า การใช้ Framework ทำให้เรา ตีกรอบ งานของเรา และขาดความยืดหยุ่น ผมบอกได้เลยครับ คนๆ นี้ไ่ม่เคยเขียน Framework หรือว่า ยังไม่เข้าถึง “แก่น”

Framework จริงๆ แล้วไม่ได้เป็นการ ตีกรอบ แต่เป็นการวาง Structure เพื่อให้ เป็นระเบียบ หยิบจับอะไรมาใช้งานได้สะดวก และเพิ่ม ความรวดเร็วในการพัฒนา Application เพราะว่า นอกเหนือจาก สิ่งที่มีใน Framework แล้วเราสามารถ ที่จะ เพิ่มอะไรไปในการใช้งาน นอกเหนือจากนั้นก็ได้ ซึ่งมีทั้งแบบ Hard Code และการเดินไป ตามทางของ Structure เดิม แต่ว่า เรื่อง Hard Code นั้น ผม ขอไม่เลือกเลยครับ เพราะนอกจากจะทำให้ Structure เสีย แล้ว ยังทำให้ คนมาเขียนต่อ งงเอา ดื้อๆ อีก ถ้าจะทำแบบนั้น อย่ามาเขียน Framework เลยครับ เหนื่อย เปล่าๆ

ดังนั้นวันนี้ เราจะมาต่อบทความ เรื่องการ plug library ให้กับ CI ตาม Structure ที่ถูกต้องกัน เพื่อเป็นการ ปูพื้น ในส่วนของการที่เราจะเอา adodb และ smarty มาใช้งาน ด้วย เริ่มกันเลยดีกว่า พล่ามมาพอละ

ก่อนอื่น ก่อนที่จะฟังผม อยากให้ลองอ่าน user guide ของ CI เองดูก่อน ว่าหลักการเป็นยังไง

ทีนี้เราลองมาเริ่มต้นทำกันเลย….

ขั้นแรกผมจะไปสร้าง Library ส่วนตัวกันที่
application/libraries/

โดยจะสร้างว่า mylib นะครับ ซึ่งขั้นตอนมีดังนี้
1. สร้างไฟล์มาก่อน โดยใช้ชื่อว่า mylib
application/libraries/Mylib.php
** สังเกตุว่า เป็นใหญ่นำเล็กตาม **

2. ทีนี้เราลองมาเขียน ตัวอย่าง lib เพื่อทำการเทสง่ายๆ กัน

  1. <?php if ( ! defined(‘BASEPATH’)) exit(‘No direct script access allowed’);
  2. // บรรทัดบนสุดเขียนเพื่อไม่ให้ access ตรงๆ เท่านั้น ต้อง access ผ่าน CI
  3. class Mylib {
  4.  
  5.         var $var1 = ‘aa’;
  6.         var $var2 = ‘bb’;
  7.  
  8.         function Mylib($params)
  9.         {
  10.                 if ($params[0])
  11.                         $this->var1 = $params[0];
  12.  
  13.                 if ($params[1])
  14.                         $this->var2 = $params[1];
  15.         }
  16.  
  17.         function method_a()
  18.         {
  19.                 echo $this->var1;
  20.                 echo "<hr />";
  21.                 echo $this->var2;
  22.         }
  23.  
  24. }
  25. ?>

*** ตัว Class ต้องเหมือนชื่อ File คือ ใหญ่นำเล็กตามนะครับ ***

3. ทดลองใช้กันเลย

  1. <?php
  2. class Home extends Controller {
  3.  
  4.         function __construct()
  5.         {
  6.                 parent::Controller();
  7.         }
  8.  
  9.         function index()
  10.         {
  11.                 echo "This is my first page.";
  12.         }
  13.  
  14.         function test_lib()
  15.         {
  16.                 $this->load->library(‘mylib’, array(‘param1′, ‘param2′));
  17.                 $this->mylib->method_a();
  18.         }
  19.  
  20. }
  21. ?>

ปล. เขียนต่อจากบทความเดิมใน Controllers

4. สุดท้ายลอง Run ขึ้นมาดู

http://localhost/codeigniter/home/test_lib

จะเห็นได้ว่ามี output ออกมาแล้ว plug ง่ายโครตๆ

และนอกจาก นี้ตัว lib นี้เรายังสามารถ extends จาก class หลักมาใช้ได้ด้วย เช่น

  1. <?php
  2. require_once(dirname(__FILE__).‘/Smarty/Smarty.class.php’);
  3. class Cismarty extends Smart {
  4.   function __construct()
  5.   {
  6.   }
  7. }
  8. ?>

เอาล่ะ มาถึงตอนนี้ผมจะตู่เอาว่า ทุกคนสามารถ plug library ได้แล้ว ครั้งหน้าผมจะมา เริ่ม plug smarty กันเลยนะ บทความมันเยอะมากๆ ต้องไปเร็วๆ แบบนี้แหละ ยังไง ลองอ่าน user guide เค้าจะเข้าใจได้ดีมากยิ่งขึ้นครับ เค้าเขียนมาดี

You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

5 Comments »

 
  • figaro says:

    นิ่งสนิด day 3 หาย… ยังตั้งตารออยู่นะครับ หุหุ

  • naruto says:

    ขอบคุณมากครับ สำหรับมือใหม่แบบผม ถือว่างงมากเลยครับ

    อยากถามนิดหน่อยครับ ว่า ถ้าเราทำเว็บไซต์ใหญ่ ๆ ระบบใหญ่ ๆ แล้วเราเอา framework มาใช้เนี่ย
    มันจะทำให้เครื่อง server ทำงานหนักขึ้นเยอะไหมครับ

    สมมติว่าเว็บเราระบบใหญ่ คนเข้าเยอะ ยิ่งเขียนเป็น framework อีก ก็จะยิ่งทำให้ช้า.. ทำนองนี้ไหมครับ

  • tom says:

    น่าจะช้าลงครับ เพราะเคยอ่านในหนังสือ เขาบอกว่า ยิ่งเขาเขียนโปรแกรมเป็นฟังก์ชัน หรือเขียน เป็น class CPU จะทำงานหนักขึ้น

    แต่ข้อดีคือเราเขียนโค้ดได้ง่ายขึ้น เหนื่อยน้อยลงครับ แล้วก็เป็นระบบระเบียบมากขึ้น

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

    ถ้ามีการใช้ framework ทุกอย่างจะมีรูปแบบ มีกฎเกณฑ์ เป็นมาตราฐานครับ

  • peglui says:

    เย้ จบ day2 แล้ววว >_<

    ง่าวอยู่นาน ก๊อปโค้ดไป แล้ว เครื่องผมมัน error ต้องเปลี่ยน ‘ กับ ’ เป็น ‘ ถึงรันผ่าน = =” (ได้ exp เพิ่มมาอีกแต้ม)

  • Meaw says:

    ใช่เลยๆๆ error งมอยู่นาน พอดีเจอที่ K.peglui

    ต้องใช้ ‘

 

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>