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
- phpmailer gởi mail SMTP bằng Gmail/Google Apps
"@trung, nếu vậy thì thử tes" - admin - phpmailer gởi mail SMTP bằng Gmail/Google Apps
"SMTP Error: Could not connect to SMTP host. mình đã làm đủ cách như e" - trung - Cấu hình domain ảo ở localhost
"Chào Cho mình hỏi mình co 1 server window dang chay IIS web asp.net " - Minh Phuong - dotProject - Online Project Management
"@tùng, lỗi quá rõ ràng rồi " - admin - dotProject - Online Project Management
"mình install báo lỗi: not create database.Mình không biết xử lý thế nà" - tùng - Review sách: Hiểu về trái tim - Minh Niệm
"may ban cho minh hoi la : minh nho` nguoi nha di mua sach dum, vi minh" - Tracy - Làm IT nên đọc ebook của nhà xuất bản nào?
"@Lê Hoàng Dũng, Mình cũng" - long - Hội thảo: Heavy Web Optimization – Back-end
"Đã là slide thì sao mà chi tiết được, thế mới gọi là thuyết trình chứ," - DaiGiaCaiBang - Hội thảo: Heavy Web Optimization – Back-end
"Nếu có thể thì anh Tuấn nên viết slide chi tiết hơn tí để mọi người kh" - ichuot - FBNC - Kênh truyền hình TPHCM "pro" nhất hiện nay!
"neu ban dung cap SCTV, ban co the xem SCTV8, day la kenh VITV phat son" - nga
Danh mục
- android (3)
- Business (24)
- Flash (1)
- Graphic Design (16)
- IT Guys (1)
- Javascript (9)
- Miscellaneous (58)
- Photography (9)
- PHP (41)
- Review sách (13)
- Search Engine Optimization (2)
- security (3)
- software (5)
- User Interface Design & Usability (8)
- Web Design (28)
- Web Programming (50)
Lưu trữ
- May 2012 (1)
- March 2012 (2)
- 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]