CodeIgniter Framework เป็น PHP Framework ตัวหนึ่งที่ได้รับความนิยมจาก PHP Developer, การเขียนโปรแกรมให้ CodeIgniter ติดต่อ MongoDB เราอาจจะเขียน Library class และเรียกใช้งานได้เมื่อเราต้องการ
การเขียน Library class เพื่อติดต่อ MongoDB Server ต้องอาศัย PHP Class ที่เขียนไว้สำหรับติดต่อ MongoDB Server ซึ่งเราจำเป็นต้องติดตั้ง PHP Driver for Mongo เข้าไปใน PHP ก่อน (อ่านเพิ่มเติมจากบทความ : เริ่มต้นใช้งาน PHP + MongoDB)
เมื่อเราติดตั้ง PHP Driver ให้รองรับ MongoDB เรียบร้อยแล้ว เราก็เริ่มมาสร้าง Library class ของเราเพื่อติดต่อกับ MongoDB Server ผ่าน PHP Mongo class ได้ทันที
การเขียน Library class ของ CodeIgniter เราอาจจะไม่ต้องเริ่มจากศูนย์ เราลองค้นหา Library class สำหรับติดต่อ MongoDB Server ที่เขียนไว้อยู่แล้วก็ได้ ซึ่ง Library class สำหรับติดต่อ MongoDB Server ที่น่าใช้งานตัวหนึ่งก็คือ (https://github.com/alexbilbie/codeigniter-mongodb-library/tree/v2) ซึ่งเขียนไว้ค่อนข้างดีทีเดียว และใช้งานได้ง่าย ส่วนไหนที่ยังไม่ครอบคลุม อาจจะเขียนเพิ่มต่อก็ยังได้
วิธีใช้งานก็ง่ายๆ
- copy ไฟล์ Mongo_db.php ไปวางไว้ที่โฟลเดอร์ /application/libraries
- copy ไฟล์ mongodb.php ไปวางไว้ที่โฟลเดอร์ /application/config
ตัวอย่างการตั้งค่า (/application/config/mongodb.php)
$config[‘default’][‘mongo_hostbase’] = ‘planet.thaimongo.com:27017’;
$config[‘default’][‘mongo_database’] = ‘DATABASE-NAME’;
$config[‘default’][‘mongo_username’] = ‘DATABASE-USERNAME’;
$config[‘default’][‘mongo_password’] = ‘DATABASE-PASSWORD’;
$config[‘default’][‘mongo_persist’] = FALSE;
$config[‘default’][‘mongo_persist_key’] = ‘ci_persist’;
$config[‘default’][‘mongo_replica_set’] = FALSE;
$config[‘default’][‘mongo_query_safety’] = ‘safe’;
$config[‘default’][‘mongo_suppress_connect_error’] = TRUE;
$config[‘default’][‘mongo_host_db_flag’] = TRUE;
- ท่านไหนที่ยังไม่มี MongoDB Server สามารถสมัครสมาชิกและใช้งาน MongoDB-as-a-Service กับ ThaiMongo ได้ฟรี (Sandbox Plan) http://app.thaimongo.com/
วิธีเรียกใช้งาน MongoDB class ใน CodeIgniter
$CI = get_instance();//object ของ CodeIgniter
$CI->load->library(“Mongo_db”);//โหลด Mongo_db library
$items = $CI->mongo_db->get(“items”);//ดึงข้อมูลจาก items collection
print_r($items);
เพียงเท่านี้ CodeIgniter ก็สามารถติดต่อ MongoDB Server ได้อย่างง่ายดาย