Triển khai ORM bằng PhpDataMapper
Đăng trong danh mục PHP, Web Programming bởi admin | Tags: class, Doctrine, enterprise, framework, OOP, ORM, phpdatamapper, Propel
Hôm nay mình sẽ giới thiệu với các bạn một tool khá hay phục vụ cho công việc coding PHP của các bạn, đó là PhpDataMapper.
Vậy nó là cái gì?
Trước tiên mình sẽ nói về ORM (Object-Relational Mapping), ORM là cơ chế cho phép bạn xây dựng 1 ứng dụng(cụ thể là OOP-hướng đối tượng) mà thao tác trên table trong database được đóng gói lại trong 1 business class (vd: table User tương ứng với class User), và không phải quan tâm nhiều đến việc viết query cho mỗi lần truy xuất DB. Kỹ thuật ORM thích hợp trong môi trường phát triển một hệ thống website mà trong đó cần tham gia nhiều thành viên trong nhóm code và cho các hệ thống quy mô Enterprise.
Hiện trên thị trường có 2 open source khá là nổi khi nhắc đến ORM trên nền PHP đó là Doctrine và Propel. 2 thằng này khá nặng về tài nguyên, không tốt cho Performance và việc cài đặt cũng khá phức tạp đối với một số bạn vì hạn chế về hosting…do đó Phpdatamapper đã được tạo ra. PHPDataMapper là công cụ cho phép tích hợp kỹ thuật ORM vào hệ thống của bạn với mức độ trung bình, cho một nhóm phát triển 1 ứng dụng không cần lên tới vài ngàn (hệ thống như vậy không nhiều), và phpdatamapper phù hợp cho một số nhóm nhỏ coder.
Phpdatamapper là opensource viết bằng PHP5 do đó php5 là yếu tố tiên quyết. Về chức năng thì cũng chứa hầu hết các kỹ thuật cơ bản cho 1 ORM đó là kế thừa class mapper, khởi tạo, sử dụng cở chế OOP để thao tác trên property của đối tượng (còn việc truy xuất database thì class sẽ tự lo nhờ cơ chế ORM), cũng có thể tự viếc query trong một số trường hợp bạn cần…và đặc biệt khá đơn giản..chỉ cần include là chạy..không cần setup gì thêm nhiều.
Bạn vào đây để biết rõ các chức năng của phpdatamapper:
http://phpdatamapper.com/goals/
Hy vọng các bạn sẽ thấy công cụ này hữu ích cho các project php về sau.
Bài viết liên quan:
3 Lời bình cho bài viết “Triển khai ORM bằng PhpDataMapper”
Viết lời bình
Bình luận mới nhất
- Karaoke Vietnam - Ứng dụng Android đầu tay
"Em cũng đang định làm 1 app. Anh có thể cho em vài gợi ý về server và" - thang - [Slide] Hội thảo: Heavy Web Optimization – Front-end
"Trên blog cá nhân của mình cũng có những bài viết cho việc tối ưu hóa " - TMQuang - phpmailer gởi mail SMTP bằng Gmail/Google Apps
"mình muốn đính kèm theo tập tin thì sao nhỉ" - Hòa - Mạng xã hội và thị trường Châu Á
"@admin, "Còn về mô hình “" - Dior - Lưu dữ liệu đa ngôn ngữ trong Database
"@viet_it_pro, cau truy " - viet_it_pro - Lưu dữ liệu đa ngôn ngữ trong Database
"@Quang Huỳnh, Bài bình luậ" - viet_it_pro - [Slide] Hội thảo: Heavy Web Optimization – Front-end
"Anh ơi cho em hỏi, làm thế nào để nhận mail google bằng php, anh có th" - Đặng Trung Kiên - Làm IT nên đọc ebook của nhà xuất bản nào?
"@Lê Hoàng Dũng, Mình thấy" - quang - Thư viện Khoa học tổng hợp TPHCM
"cảm ơn bài viết, mặc dù đã sinh sống ở Saigon khá lâu , nay mình mới c" - NHUNG - phpmailer gởi mail SMTP bằng Gmail/Google Apps
"Chào anh Tuấn, tut của anh em đã đọc, cảm ơn anh đã chia sẻ. Tuy nhiên" - Trần Đình Trọng
Danh mục
- android (2)
- Business (24)
- Flash (1)
- Graphic Design (16)
- IT Guys (1)
- Javascript (9)
- Miscellaneous (58)
- Photography (9)
- PHP (38)
- Review sách (13)
- Search Engine Optimization (2)
- security (2)
- software (5)
- User Interface Design & Usability (8)
- Web Design (28)
- Web Programming (48)
Lưu trữ
- February 2012 (1)
- January 2012 (1)
- December 2011 (1)
- November 2011 (2)
- September 2011 (2)
- August 2011 (1)
- July 2011 (4)
- June 2011 (2)
- May 2011 (2)
- April 2011 (2)
- March 2011 (2)
- February 2011 (2)
- January 2011 (4)
- December 2010 (6)
- November 2010 (3)
- October 2010 (3)
- September 2010 (5)
- August 2010 (6)
- July 2010 (5)
- June 2010 (2)
- May 2010 (5)
- April 2010 (7)
- March 2010 (8)
- February 2010 (4)
- January 2010 (10)
- December 2009 (12)
- November 2009 (12)
- October 2009 (15)
- September 2009 (16)
- August 2009 (11)
- July 2009 (15)
- November 2008 (1)
- October 2008 (1)
- September 2008 (3)



February 3, 2010 at 11:28 am
Chào Tuấn!
Đọc khá nhiều bài viết của Tuấn, và cũng đã có nhiều comment để lại.
Tới cái bài này, thấy hay thật, giống cái linq bên ASP.Net lắm. Nhưng nói thật cái PhpDataMapper này không biết xài từ đâu, cũng ko có demo nữa. Tuấn có thể viết một bài tutorial chia sẽ cách làm với cái này ko
[Reply]
admin Reply:
February 3rd, 2010 at 11:34 am
Vì hiện tại đang tự phát triển và sử dụng Framework do mình viết nên cũng không gắn thêm ORM cho ứng dụng vì 2 lý do: Thêm 1 Abstract Layer ~ Thêm Overhead và khó mà Optimize Query vì nếu đã xài ORM thì sẽ làm cho Developer “lười”, động tí là class và call method nên mình không thích cách này.
Đối với các ứng dụng bình thường thì dùng cách này thì hiệu quả hơn nhiều. Còn ví dụ thì google có mà đầy ^^, chúc vui !
[Reply]
February 3, 2010 at 4:50 pm
Trả lời nhanh ghê. Uhm, mình cũng tự phát triễn 1 cái FW để tự xài, mô hình MVC đàng hoàng
Nhưng cái MVC của mình nói chung là củ chuối lắm, chỉ giải quyết vấn đề cơ bản thôi. Thấy cái MVC của ASP.Net có thể tích hợp LINQ vào, nên ham hố, muốn tích hợp cái PHPDataMapper này vào cái FW tự chế xem hoạt động thế nào. Ổn thì xài, ko thì bỏ.
Trang chủ không có demo, hướng dẫn có vẻ sơ xài quá
[Reply]