Welcome Guest ( Log In | Register )

21 Pages V   1 2 3 > » 

มาทำ PhpDoc ในลักษณะเดียวกับ JavaDoc กัน ?

Posted by up1, Feb 17 2010, 01:22 AM in php

เนื่องจากผมชอบ JavaDoc ของภาษา Java อยู่แล้ว ดังนั้นเมื่อมีโอกาสมาคึกษา php ก็ลองตั้งคำถามขึ้นมาว่า

QUOTE
จะทำ PhpDoc ในลักษณะเดียวกับ JavaDoc ได้หรือไม่ ??



เมื่อลองไปค้นหาดูพบว่ามี library ที่น่าสนใจคือ PHPDoctor

ใน Web ของ PHPDoctor บอกว่า

QUOTE
PHPDoctor is an attempt to create a simpler and faster PHPDoc (Javadoc style comment parser for PHP) that produces standards compliant HTML.


ดังนั้น จึงลองใช้งาน PHPDoctor ดูว่าเป็นยังไง


Software ที่ใช้งาน คือ
- Apache Web Server 2.x
- PHP 5.x
- PHPDoctor

การใช้งาน
1. ทำการติดตั้งและ config ทั้ง Apache Web Server และ PHP

2. ทำการ Download PHPDoctor และทำการ extract ไว้สักที่ เช่น ผมนำไป extract ไว้ที่ c:\mytest\

3. สามารถทำการ run PHPDoctor ดังนี้
- กำหนดให้สามารถ run php จาก command line ได้ด้วยการกำหนด path ดังนี้
QUOTE
set php_home=<php installation directory>
set path=.;%php_home%;%path%


- ทำการ run PHPDoctor ดังนี้

>cd c:\mytest
>php php phpdoc.php default.ini

ผลการทำงาน
- จะสร้าง folder c:\mytest\apidocs ขึ้นมา และสามารถเปิด file index.html ใน web browser จะเห็นสิ่งที่ผมต้องการ คือ PHPDoc ในรูปแบบเดียวกับ JavaDoc นั่นเอง

แต่สิ่งที่ผมต้องการ คือ run ใน project ที่ผมต้องการ ดังนั้น ต้องแก้ไขข้อมูลใน file default.ini ดังนี้

QUOTE
...
source_path = "C:\myproject\"
default_package = "MyPackage"
...


อธิบาย
กำหนด project path ไปที่ folder C:\myproject\
กำหนด default package ของ project


ตัวอย่าง file php ที่เขียนไว้ใน folder C:\myproject\ ดังนี้
CODE
<?php
/**
* Hello Class
* @author UP1
*/
class Hello {
    /**
     * Constructor
     */
    function Hello() {

    }

    /**
     * Method for retrive data by id
     * @param int id
     */
    function get($id) {

    }

    /**
     * Method for add data
     * @param String name
     * @param int status
     */
    function add($name, $status) {

    }
}
?>


ทำการ run คำสั่งดังนี้
>cd c:\mytest
>php php phpdoc.php default.ini

หลังจาก run คำสั่งแล้วไปที่ folder C:\myproject\apidocs จะมีการสร้าง html ดังรูป

Attached Image


เพียงเท่านี้ก็สามารถสร้าง PHPDoc ในรูปแบบ JavaDoc ได้แล้วครับ smile.gif smile.gif smile.gif


CodeIgniter :: การใช้งาน XML-RPC Client

Posted by up1, Feb 12 2010, 05:38 PM in CodeIgniter

วันนี้ต้องเรียกใช้ services ผ่าน XML-RPC ดังนั้น จึงมาดูว่าใน CodeIgniter มีอะไรให้มาบ้าง ซึ่งก็พบว่ามันเตรียม libraries ของ XML-RPC ไว้ให้แล้ว ดังนั้นจึงง่ายเลย เพียงแค่ดูวิะีการใช้งานต่างๆ ที่นี่ XML-RPC Library

การใช้งาน XML-RPC Client เบื้องต้น เป็นดังนี้

1. ก่อนใช้งานจะต้องทำการ load libraries ขึ้นมาก่อน โดยสามารถทำได้ 2 วิธีเช่นเดิม คือ
- กำหนดใน file /system/application/config/autoload.php ดังนี้

QUOTE
$autoload['libraries'] = array('xmlrpc');


- load ก่อนการใช้งาน

CODE
$this->load->library('xmlrpc');


2. ส่ง request ไปยัง XML-RPC Service มีขั้นตอนดังนี้


- กำหนด url ของ service และ port
CODE
$this->xmlrpc->server('http://rpc.server.com/', 80);


- กำหนด method ของ XML-RPx Service
CODE
$this->xmlrpc->method('mymethod');


- กำหนด Request ต่างๆ ที่จะส่งไปยัง XML-RPC Service
CODE
$request = array('Param1', 'Param2');
$this->xmlrpc->request($request);


- ส่ง request ไปยัง XML-RPC Service
CODE
if ( ! $this->xmlrpc->send_request()) {
    echo $this->xmlrpc->display_error();
} else {
    echo $this->xmlrpc->display_response();
}


เพียงเท่านี้ก็สามารถใช้งาน XML-RPC Client ใน CodeIgniter ได้แล้วครับ


ทำความเข้าใจกับแนวคิดของ Scribe

Posted by up1, Feb 11 2010, 04:03 PM in Web Technologies

ตอนนี้กำลังดูระบบ Logging ของระบบ โดยระบบที่ต้องการคือ การนำ log file ต่างๆ ที่มีในระบบงาน ซึ่งมีหลากหลายที่เหลือเกิน มารวมกันไว้ที่ตรงกลาง เพื่อให้สามารถดูและวิเคราะห์ข้อมูลต่างๆ จาก log file ให้ง่ายยิ่งขึ้น [ แต่ก้ยังคงการเก้บ log file ไว้ แต่กำหนด format มาตรฐานไว้ให้ ]

โดยมีหลากหลายแนวคิด และหนึ่งในนั้นคือ แนวคิดจาก Facebook คือ Scribe เป็นแนวคิดที่น่าศึกษาเช่นกัน โดยแนวทางหรือเป้าหมายของ scribe คือ

- ต้องการสร้าง central log ขึ้นมา
- ทำงานแบบ real time
- รองรับจำนวน servers มากๆ ได้
- มีความเสถียร
- สามารถทำงานได้ ถ้า central server ตายหรือไม่ทำงาน


โครงสร้างระบบของ Scribe นั้นทำงานดังนี้
1. ทั้ง server และ client นั้นจะมี Scribe Server ทำงานอยู่เสมอ แต่จะมีตัวที่ทำหน้าที่เป็น central ( 1 server หรือมากกว่านั้นก็ได้ ) โดยกำหนดผ่าน configuration file

2. แต่ละ server ขอเรียกว่า node โดยแต่ละ node จะมี Scribe Server ทำงาน โดยจะทำการรวม log message ต่างๆ จากระบบของตัวเอง และส่งไปยัง Central Node

3. ในกรณีที่ Central Node หยุดทำงานไป แล้ว ตัว Node อื่นๆ ที่ไม่ใช่ Central Node จะเก็บข้อมูลเป็น file ไว้ และเมื่อติดต่อกับ Central Node ได้แล้ว จึงจะส่ง log message ที่เก็บไว้ไปยัง Central Node

4. โครงสร้างของ log message ส่งกันไปมานั้นประกอบไปด้วย category และ message
- category เก้บข้อมูลต่างๆ ที่จำเป็นในการส่ง message เช่น node ของ central node เป็นต้น
- message เก็บข้อมูลของ log

5. Scribe พัฒนาด้วยภาษา C++

6. ปัจจุบัน Scribe ถูกใช้งานใน facebook โดยมี servers ในหลักพัน


เมื่อศึกษามาได้นิดหน่อย พอเห็นแนวคิดคร่าวๆ แล้ว ต่อไปก็คงนำมาลองทำ POC เล่นๆ ต่อไป




สร้าง Virtual Host ใน Apache WebServer

Posted by up1, Jan 21 2010, 04:51 PM in Apache WebServer

การ config virtual host ใน apache webserver สามารถทำได้ดังนี้

1. config/httpd.conf ทำการ include file conf/extra/httpd-vhosts.conf ดังนี้

QUOTE
Include onf/extra/httpd-vhosts.conf


2. ทำการ config ใน file conf/extra/httpd-vhosts.conf เพื่อเพิ่ม virtual host ที่เราต้องการสร้าง ดังนี้

CODE
<VirtualHost *:80>
    ServerAdmin admin@xx.com
    DocumentRoot "C:/AppServ/www/my"
    ServerName my.xxx.com
    ErrorLog "logs/my-error.log"
    CustomLog "logs/my-access.log" common
</VirtualHost>

<Directory "C:/AppServ/www/my">
  Order Deny,Allow
  Allow from all
</Directory>


คำอธิบาย
DocumentRoot คือ folder root ของ project
ServerName คือ ชื่อของ virtual ที่เราต้องการสร้าง
ErrorLogม CustomLog คือ log files ต่างๆ ซึ่งจะแยกตาม virtual host


ในการใช้งานในเครื่อง dev บน windows แบบง่ายๆ ก็ไป config ใน file hosts ได้เลย เช่น
QUOTE
127.0.0.1 my.xxx.com


ถ้าบน linux ก็ไปกำหนดใน file /etc/hosts นะครับ


----- เพิ่มเติม ------
วันนี้เจอปัญหาบน server คือไม่สามารถ access ได้โดยตรง ซึ่งพบว่า ใน file httpd.conf นั้นไม่ได้ allow ในการ access directory ไว้ ดังนั้นวิธีการแก้ไขคือ
- ใน file conf/httpd.conf นั้นกำหนด AllowOverride All
หรือ
- ใน file conf/extra/httpd-vhosts.conf กำหนด AllowOverride All ในแต่ละ virtual host ที่กำหนด


CodeIgniter :: มาทำความรู้จัก Active Record Class กัน

Posted by up1, Jan 19 2010, 12:14 AM in CodeIgniter

มาทำความรู้จัก Active Record Class กัน
ที่มา :: Active Record Class

ในส่วน ของ model class ของ CodeIgniter นั้นสามารถ mapping table ใน database เข้าได้ โดยใช้แนวคิดของ Active Record Pattern หรืออาจจะเรียกว่า CodeIgniter นั้นมี OR-Mapping มาให้ด้วย ซึ่งทำให้การจัดการข้อมูลใน database ง่ายและสะดวกมากยิ่งขึ้น รวมทั้งยังไม่ผูกติดกับ database ด้วย

สิ่งที่เตรียมไว้ใน Active Record Class มีดังนี้

QUOTE
- Select Data
- Insert Data
- Update Data
- Delete Data
- Method Chaining
- Active Record Caching


ปล. ในบทความนี้ใช้ MySQL นะครับ


- Select Data ดึงข้อมูล
จะทำการสร้าง select statement มาให้เอง ผ่านการใช้ method/function เหล่านี้

:: $this->db->get( $table_name ); ::
เป็นการดึงข้อมูลทั้งหมด จาก table ที่กำหนด

ตัวอย่างการใช้งาน
$query = $this->db->get( 'blog' );

sql statement ที่สร้างขึ้นมาคือ select * from blog

:: $this->db->get( $table_name, $limit, $offset ); ::
เป็นการดึงข้อมูลแบบ paging จาก table ที่กำหนด

ตัวอย่างการใช้งาน
$query = $this->db->get( 'blog', 10, 20 );

sql statement ที่สร้างขึ้นมาคือ select * from blog LIMIT 20, 10


:: $this->db->get_where( $table_name, array(), $limit, $offset ); ::
เป็นการดึงข้อมูลด้วยแบบ paging จาก table ที่กำหนด

ตัวอย่างการใช้งาน
$query = $this->db->get_where('blog', array('id' => 1), 10, 20);

sql statement ที่สร้างขึ้นมาคือ
select * from blog where id = 1 LIMIT 20, 10

:: $this->db->select(); ::
สามารถเลือก columns ที่ต้องการได้

ตัวอย่างการใช้งาน
this->db->select('title, content, date');
$query = $this->db->get('blog);

sql statement ที่สร้างขึ้นมาคือ
select title, content, date from blog


:: $this->db->from(); ::
สร้าง from ใน sql statement ซึ่งจะต้องใช้งานร่วมกับ $this->db->get()

ตัวอย่างการใช้งาน
$this->db->select('title, content, date');
$this->db->from('blog');
$query = $this->db->get();

sql statement ที่สร้างขึ้นมาคือ
select title, content, date from blog



...... พักก่อน .... มันเยอะจริงๆ


Link :: Web Security: Are You Part Of The Problem?

Posted by up1, Jan 18 2010, 03:26 AM in Web Technologies

ที่มา :: Web Security: Are You Part Of The Problem?


CodeIgniter :: เริ่มต้นเกี่ยวกับ Model

Posted by up1, Jan 18 2010, 02:17 AM in CodeIgniter

ที่มา :: http://codeigniter.com/user_guide/general/models.html

Model คืออะไร
- คือ M ใน MVC model
- ใน CodeIgniter คือ PHP classes ที่ถูกออกแบบให้ทำงานกับข้อมูลที่อยู่ใน database
- ในส่วนของ Model ของ CodeIgniter นั้นจะใช้ Active Record Pattern มาช่วยเรื่องการจัดการข้อมูลต่างๆ ใน database ด้วยการเขียน script สั้นๆ

ตัวอย่างเช่น ระบบ blog ใน Model ประกอบไปด้วย functions ต่างๆ เช่น insert, update, get ข้อมูลของ
blog จาก database ดังนี้

CODE
class Blogmodel extends Model {

    var $title   = '';
    var $content = '';
    var $date    = '';

    function Blogmodel()
    {
        // Call the Model constructor
        parent::Model();
    }
    
    function get_last_ten_entries()
    {
        $query = $this->db->get('entries', 10);
        return $query->result();
    }

    function insert_entry()
    {
        $this->title   = $_POST['title']; // please read the below note
        $this->content = $_POST['content'];
        $this->date    = time();

        $this->db->insert('entries', $this);
    }

    function update_entry()
    {
        $this->title   = $_POST['title'];
        $this->content = $_POST['content'];
        $this->date    = time();

        $this->db->update('entries', $this, array('id' => $_POST['id']));
    }

}



โครงสร้างของ Model
- Model classes จะถูกเก็บไว้ใน folder /system/application/models และสามารถมี folder ย่อยๆ ได้
- Model จะมีหน้าตาดังนี้

CODE
class Model_name extends Model {

    function Model_name()
    {
        parent::Model();
    }
}


- ชื่อของ Model จะต้องขึ้นต้นด้วยอักษรตัวใหญ่ และต้อง extends จาก Model class หรือ sub-class ของ Model class

ตัวอย่าง Blog_model

CODE
///system/application/models/user_model.php
class Blog_model extends Model {

    function Blog_model()
    {
        parent::Model();
    }
}



การใช้งาน Model
- manual loading คือ จะทำการ load เมื่อจะใช้งาน ใน Controller class ดังนี้

CODE
$this->load->model('Model_name');
$this->Model_name->function();


หรือถ้าต้องการใช้ชื่อ object อื่น ด้วยการ alias ดังนี้

CODE
$this->load->model('Model_name', 'fubar');
$this->fubar->function();


ตัวอย่างการใช้งานของ Manual Loading ดังนี้

CODE
class Blog_controller extends Controller {

    function blog()
    {
        $this->load->model('Blog');
        $data['query'] = $this->Blog->get_last_ten_entries();
        $this->load->view('blog', $data);
    }
}


- auto loading ทำการ config ไว้ใน file /system/application/config/autoload.php


การติดต่อไปยัง Database
- ทำการ config database parameters ได้ใน file /system/application/config/database.php
- เมื่อทำการ load model ขึ้นมานั้น ระบบจะยังไม่ติดต่อไปยัง database ดังนั้น ถ้าต้องการให้ model ติดต่อไปยัง database สามารถทำได้ดังนี้

CODE
$this->load->model('Model_name', '', TRUE);


- ถ้าต้องการให้ติดต่อ database แบบ automatic สามารถทำการ config ใน file /system/application/config/autoload.php และเพิ่มการ load "database" ในส่วน library ดังนี้

CODE
$autoload['libraries'] = array( 'database' );



เพิ่มเติมเกี่ยวกับการจัดการกับ Database
http://codeigniter.com/user_guide/database/index.html


CodeIgniter :: การทำ Dynamic Configuration

Posted by up1, Jan 15 2010, 06:25 PM in CodeIgniter

CodeIgniter :: Dynamic Configuration

ที่มา ::
Setting up Codeigniter with dynamic configuration variables – fit for development teams

Problem

ในการพัฒนาระบบด้วย CodeIgniter นั้นจะมี environment ประมาณ 2-3 ตัวคือ
- developer
- testing/statging
- production

ดังนั้นเราจะทำอย่างไรกันดี ???

Solution

สิ่งที่จะต้องทำคือ แยกการ configuration ตาม environment ที่กำหนด เช่น development, test, production เป็นต้น โดยค่า configuration ที่ต้องเปลี่ยนไปตาม environment คือ

QUOTE
- ค่า $config['base_url'] คือ ค่า url ของ site ที่พัฒนา อยู่ใน file /system/application/config/config.php
- การปรับแต่ง database ใน file /system/application/config/database.php


หลังจากได้เป้าหมายที่จะทำแล้ว ก็มาเริ่มกันเลย

1. ทำการกำหนดค่าคงที่ ( Constants) ของชนิด environement ที่มีในระบบใน file /system/application/config/constants.php ดังนี้

CODE
define('DEVELOPMENT_SERVER_NAME', 'localhost');
define('TEST_SERVER_NAME', 'http://test.domain.com');
define('STAGING_SERVER_NAME', 'http://statging.domain.com');
define('PRODUCTION_SERVER_NAME', 'http://live.domain.com');


2. จัดการเกี่ยวกับ $config['base_url'] ใน file /system/application/config/config.php ตามแต่ละ environment
โดยดึงค่าจาก server name มันใช้ในการตัดสินใจ


CODE
switch ($_SERVER['SERVER_NAME']) {

   case DEVELOPMENT_SERVER_NAME:
        $config['base_url']    = "http://localhost/";
        break;
   case TEST_SERVER_NAME:
        $config['base_url']    = "http://test.domain.com";
        break;
   case STAGING_SERVER_NAME:
        $config['base_url']    = "http://statging.domain.com";
        break;
   default:
        $config['base_url']    = "http://live.domain.com";
        break;
}



3. จัดการเกี่ยวกับ database ใน file /system/application/config/database.php ตามแต่ละ environment ได้ดังนี้

3.1 จัดการกับ active group ของ database configuration ได้ดังนี้

CODE
switch ($_SERVER['SERVER_NAME']) {

   case DEVELOPMENT_SERVER_NAME:
     $active_group = "local";
     break;
   case TEST_SERVER_NAME:
        $config['base_url']    = "test";
        break;
   case STAGING_SERVER_NAME:
     $active_group = "staging";
     break;
   default:
     $active_group = "production";
     break;

}


และกำหนด configuration ของแต่ละ environment ดังนี้

CODE
$db['local']['hostname'] = "localhost";
$db['local']['username'] = "DEV_USERNAME";
$db['local']['password'] = "DEV_PASSWORD";
$db['local']['database'] = "DEV_DATABASENAME";
$db['local']['dbdriver'] = "mysql";

$db['test']['hostname'] = "localhost";
$db['test']['username'] = "TEST_USERNAME";
$db['test']['password'] = "TEST_PASSWORD";
$db['test']['database'] = "TEST_DATABASENAME";
$db['test']['dbdriver'] = "mysql";

$db['staging]['hostname'] = "localhost";
$db['staging']['username'] = "STAGING_USERNAME";
$db['staging']['password'] = "STAGING_PASSWORD";
$db['staging']['database'] = "STAGING_DATABASENAME";
$db['staging']['dbdriver'] = "mysql";

$db['production']['hostname'] = "localhost";
$db['production']['username'] = "PRODUCTION_USERNAME";
$db['production']['password'] = "PRODUCTION_PASSWORD";
$db['production']['database'] = "PRODUCTION_DATABASENAME";
$db['production']['dbdriver'] = "mysql";


เพียงเท่านี้ก็สามารถทำ Dynamic Configuration ใน CodeIgniter ได้แล้วครับ


CodeIgniter :: การสร้าง Core System Classes

Posted by up1, Jan 14 2010, 10:04 PM in CodeIgniter

จาก entry นี้ CodeIgniter :: ใช้งาน Profiling ในระบบแบบง่ายๆ ทำให้ผมยังงงว่าทำไมต้องตั้งชื่อขึ่นต้นด้วย MY_ ?? และไม่ต้องทำการ load library ที่เขียนขึ้นมาด้วย ???

ดังนั้น จึงต้องไปหาความรู้เพิ่มเติมจาก User Guilde ของ CodeIgniter จึงเห็นหัวข้อนี้ Creating Core System Classes ซึ่งตรงกับความต้องการมาก ดังนั้นเรามาศึกาากันว่าเป็นยังไงกันบ้าง

เริ่มต้นกันเลย ...


เมื่อ CodeIgniter ทำงานนั้นจะทำการ load classes ต่างๆ ขึ้นมามากมายแบบอัตโนมัติ [ Class Loader ใน java ] โดยจะมี core system classes และ classes ที่ผู้พัฒนาทำการ extends มาจาก core system classes

มาดูว่า Core System Classes ประกอบไปด้วยอะไรบ้าง
- Core System Classes คือ classes ที่ทาง CodeIgniter เตรียมไว้ให้ใช้งานแล้ว โดยจะเก็บไว้ใน folder
/system/libraries ดังนี้
- Benchmark
- Config
- Controller
- Exceptions
- Hooks
- Input
- Language
- Loader
- Log
- Output
- Router
- URI


CodeIgniter เปิดให้เราสร้าง classes ไป replace หรือแทนที่ System Core Classes ได้ โดยทำดังนี้
- สร้าง file php ใน folder /system/application/libraries/
- php file ที่สร้างขึ้นมานั้น จะต้องมี class ที่มีชื่อขึ้นต้นด้วยคำว่า CI ดังตัวอย่าง

CODE
//Input.php
class CI_Input {

}


CodeIgniter ก็เปิดให้เราสร้าง SubClass จาก Core Classes เช่นกัน เพื่อเพิ่มความสามารถบางอย่างเข้าไป จะเรียกว่า Extending classes ซึ่งในการ implements จะต้องทำดังนี้
- class ที่สร้างขึ้นจะต้อง extends System Core Classes
- ชื่อของ class และ file ที่สร้างขึ้นนั้นจะต้องขึ้นต้นด้วย MY_ โดยค่านี้จะกำหนดไว้ใน file /system/application/config/config.php ดังนี้

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


โดยค่าของ $config['subclass_prefix'] ไม่ควรเป็น CI_ เนื่องจากเป็น prefix ของ Core System Classes ซึ่งจะทำให้สับสนได้

ตัวอย่างเช่น การ extens มาจาก Input class จะเป็นดังนี้

CODE
// system/application/libraries/My_Input.php
class MY_Input extends CI_Input {

}


หรือจากตัวอย่างในการ extends Controller มาก็เช่นกัน ทำให้ CodeIgniter นั้นมีความยึดหยุ่นมากครับ




CodeIgniter :: ใช้งาน Profiling ในระบบแบบง่ายๆ

Posted by up1, Jan 14 2010, 06:30 PM in CodeIgniter

Problem
หลังจากที่ดู Profiling ของ CodeIgniter แล้วพบว่ามันใช้งานง่ายมาก เพียงแต่ไปปิดการใช้งานใน method ของ controller ดังนี้

CODE
$this->output->enable_profiler(TRUE);


โดยจะแสดงข้อมูลต่างๆ เช่น
- parameter ที่ส่งมาทั้ง POST และ GET
- เวลาในการทำงานทั้งหมด
- เวลาการดึงข้อมูลจาก model, database รวมทั้ง sql query ที่ใช้ด้วย

แต่ปัญหาที่เจอคือ ต้องนำ code จากข้างต้นใส่ในทุกๆ method ที่ต้องการจะดู profiling ซึ่งไม่มีดีเลย ??? แล้วจะทำอย่างไรดี ???


Solution

วิธีการแก้ปัญหา คือ ใช้ความสามารถของ OOP ในเรื่องของ inheritance มาช่วย และเพิ่มการ config เพื่อเปิดปิดได้ตามต้องการ ดังนี้

1. เพิ่มการ config ใน file /system/application/config/config.php ดังนี้

CODE
$config['debug'] = TRUE;


โดยมีค่าเป็น TRUE หรือ FALSE


2. สร้าง Base Class ของ Controller ขึ้นมาชื่อว่า MY_Controller.php เก้บไว้ที่ folder /system/application/libraries/ ดังนี้

CODE
<?php

class MY_Controller extends Controller {

    function __construct() {
        parent::__construct();
        $this->output->enable_profiler($this->config->item('debug'));
    }

}

?>


คำอธิบาย
ใน constructor จะทำการเปิดหรือปิดการแสดง profiling ตามค่าที่กำหนดไว้ใน config.php

3. การใช้งาน ทำได้ด้วยการที่ทุกๆ controller จะต้อง extends My_Controller เสมอ ดังนี้

CODE
class Guestbook extends MY_Controller {
  ...
  ...
}



เพียงเท่านี้ก็สามารถดูและจัดการ profiling แบบง่ายๆ ของการทำงานในระบบได้แล้ว


21 Pages V   1 2 3 > »   

« March 2010 »

SMTWTFS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

Search My Blog