ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์ProgrammingORM มีไว้ทำอะไรหรือครับ แล้ว Doctrine มันดีอย่างไรหรือครับ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: ORM มีไว้ทำอะไรหรือครับ แล้ว Doctrine มันดีอย่างไรหรือครับ  (อ่าน 2470 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
phenomfx
คนรักเสียว
*

พลังน้ำใจ: 6
ออฟไลน์ ออฟไลน์

กระทู้: 100



ดูรายละเอียด
« เมื่อ: 03 กุมภาพันธ์ 2011, 09:37:25 »

Doctrine + codeigniter
Data mapper
(ผมหัดเล่น codeigniter อยู่อาจจะมีเจ้าอื่นๆอีก ที่ไม่รู้จักครับ ช่วยแน่ะนำด้วยน่ะครับ)

ส่วน Doctrine มันมีความสามารถอะไรครับ ผมดูใน tutorial จาก http://www.phpandstuff.com/art...cratch-day-1-install-and-setup

ประมาณว่า เพิ่ม ลบ แก้ไข ลงใน database ได้หลายเจ้าเช่น (Mysql ,Oracle,SQLite อื่นๆ)
ที่ผมดู รู้สึกโค้ดในการเขียนจะยาวอ่ะครับ (ยังหาข้อดี นอกจากเพิ่ม ลบ แก้ไข ไม่ได้ - -a )

ความรู้ภาษาอังกฤษ ก็น้อยครับ  Tongue รบกวนพวกพี่ๆ บอกประโยชน์ แล้วทำไมถึงต้องพัฒนามาด้วยครับ
บันทึกการเข้า
skink
Newbie
*

พลังน้ำใจ: 1
ออฟไลน์ ออฟไลน์

กระทู้: 8



ดูรายละเอียด
« ตอบ #1 เมื่อ: 03 กุมภาพันธ์ 2011, 15:17:37 »

ORM คือตัวเก็บข้อมูลแบบ Object ลง Relational Database
บันทึกการเข้า
DJJome
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 46
ออฟไลน์ ออฟไลน์

กระทู้: 1,123



ดูรายละเอียด
« ตอบ #2 เมื่อ: 08 กุมภาพันธ์ 2011, 18:03:54 »

ORM = Object-relational mapping
ผมคิดคำอธิบายอย่างเป็นทางการไม่ถูกเหมือนกันนะครับ
ขออธิบายตามที่ผมเข้าใจว่า ไอ้เจ้า ORM เนี่ย มันจะทำให้เรามองข้อมูลเป็น Object
เช่น Object User, Object Blog

ถ้าถามว่าทำไมต้องมี ก็คือเพิ่มความสะดวกและลดความซ้ำซ้อนของ code ครับ
ยกตัวอย่างเช่น User ของเรามีข้อมูลได้แก่ first_name, last_name, email, password
ถ้าไม่ใช้ ORM เวลาเราอยากเพิ่ม User เราก็จะใช้วิธี
โค๊ด:
$query = "insert into `user` (`id`, `first_name`, `last_name`, `email`, `password`)
values('', '$first_name', '$last_name', '$email', '$password')"
แต่ถ้าใช้ ORM เราจะทำแบบนี้

โค๊ด:
$user = new User();
$user->first_name = $first_name;
$user->last_name = $last_name;
$user->email = $email;
$user->password = $password;

$user->save();

ส่วนเวลาจะอัปเดต แบบสั้นที่สุดก็ทำแบบนี้

โค๊ด:
$user = Doctrine_Core::getTable('User')->find(1); // 1 หมายถึง user id, User หมายถึงชื่อตาราง
$user->first_name = $first_name;
$user->last_name = $last_name;
$user->email = $email;
$user->password = $password;

$user->save();

โดยเบื้องหลังการสร้างคำสั่ง SQL ตัว ORM จะจัดการให้ทั้งหมด

คงจะพอเห็นภาพนะครับ
« แก้ไขครั้งสุดท้าย: 08 กุมภาพันธ์ 2011, 18:05:21 โดย DJJome » บันทึกการเข้า
DJJome
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 46
ออฟไลน์ ออฟไลน์

กระทู้: 1,123



ดูรายละเอียด
« ตอบ #3 เมื่อ: 08 กุมภาพันธ์ 2011, 18:06:56 »

ตอนนี้ผมใช้ทั้ง Doctrine+CI, Doctrine+Zend นะครับ
สาเหตุที่ต้องใช้คือ ลูกค้าต่างชาติระบุมา
สบายขึ้นเป็นกอง เพราะเราพูดภาษาเดียวกัน
ไม่ต้องมาแปล SQL กันให้เมื่อยตุ้ม
บันทึกการเข้า
หน้า: [1]   ขึ้นบน
พิมพ์