Thứ Hai, 18 tháng 6, 2012

Kohana Model

Trong bài trước mình đã giới thiệu việc sử dụng class Controller_Template để tạo ra 1 template (gần giống như master page) trong kohana framework. Nếu bạn đã xem qua thì có thể nhận thấy cấu trúc của kohana rất đơn giản, cấu trúc file không quá phức tạp như Zend Framework cho nên việc tự preview code framework đối với nhiều bạn cũng không quá khó khăn.


Trong kohana mặc định đã bao gồm một số module tiện ích có sẵn như database, cache, auth, .... Ngoài các module đó bạn vẫn có thể từ viết cho mình những module riêng hoặc tìm kiếm các kohana module đã được cộng đồng kohana viết và sử dụng lâu nay.

Công việc của mình trong bài này là giới thiệu đến cho các bạn cách gọi và truy vấn cơ sở dữ liệu với module database của kohana.

Đầu tiên chúng ta cần cấu hình lại module này. Mỗi một module kohana điều được thiết kế rất linh động.
Cấu trúc của một module thông thường:
/module_name
      ---- classes
      ---- config
      ---- views
      ---- model

Ở đây bạn sẽ chú ý đến file config/database.php, tập tin này chứa thông tin cấu hình mặc định cho việc kết nói cơ sở dữ liệu. Bạn có thể xem và tùy chỉnh những thông tin cấu hình server của bạn sao cho phù hợp

<?php defined('SYSPATH') or die('No direct access allowed.');
return array
(
'default' => array
(
'type'       => 'mysql',
'connection' => array(
'hostname'   => 'localhost',
'database'   => 'db_1';,
'username'   => 'user_1',
'password'   => 'pass',
'persistent' => FALSE,
),
'table_prefix' => '',
'charset'      => 'utf8',
'caching'      => FALSE,
'profiling'    => TRUE,
)
);

Sao khi đã cấu hình database thì việc tiếp theo mà bạn cần làm đó là đăng ký module này với kohana , để làm điều đó bạn cần khai báo module database trong bootstrap.php


Kohana::modules(array(
'database'   => MODPATH . 'database',   // Database access
));

Cơ bản module đã đã load.

Tiếp theo là các bước truy vấn đơn giản với module database:

$select = DB::select()->from('users')->where('user_id', '=', 1);

// Không cần giải thích chắc bạn cũng có thể hiểu được ý nghĩa của câu query trên đúng không ;)

Do không có nhiều thời gian nên mình chỉ tạm giới thiệu cho các bạn tới đây thôi, toàn bộ document mình học cũng từ địa chỉ http://kohanaframework.org/3.2/guide/database/, chúc các bạn học được nhiều thêm qua bài này.