2009-07-11 36 views

Trả lời

19

ActiveRecord là một mô hình phổ biến ở ORMs. Doctrine là một ORM sử dụng kiểu ActiveRecord'ish.

Một số lợi ích của việc sử dụng các công cụ như Học thuyết:

  • Cơ sở dữ liệu độc lập: Mã nên được dễ dàng đến cổng để DBS khác nhau. Ví dụ, tôi thường kiểm tra bằng cách sử dụng SQLite và sử dụng MySQL hoặc Postgre trong sản xuất mà không có thay đổi về mã.
  • Chúng giảm số lượng mã bạn phải viết: Phần lớn mã ứng dụng đề cập đến giao tiếp với cơ sở dữ liệu. Một ORM chăm sóc hầu hết điều đó, vì vậy bạn có thể tập trung vào việc viết ứng dụng thực tế.

Tất nhiên, họ không đến mà không có nhược điểm:

  • thuyết là nặng nên nó là chậm hơn so với sử dụng SQL thẳng
  • ORMs có thể phức tạp, thêm một số trọng lượng cho những gì bạn phải tìm hiểu và đôi khi chúng có thể khó hiểu đối với các lập trình viên thiếu kinh nghiệm
+0

Tôi không biết những gì bạn có ý nghĩa bởi "ActiveRecord'ish", nhưng đây là một mô tả thích hợp: "Doctrine 2 là một trình ánh xạ đối tượng-quan hệ (ORM) cho PHP 5.4+ cung cấp sự kiên trì suốt đối với các đối tượng PHP. Nó sử dụng mô hình Data Mapper ở trung tâm, nhằm tách hoàn toàn miền/logic nghiệp vụ của bạn khỏi sự kiên trì trong một hệ thống quản lý cơ sở dữ liệu quan hệ." Nguồn: http://doctrine-orm.readthedocs.org/en/latest/tutorials/getting-started.html#what-is-doctrine – ZeeCoder

+1

@ZeeCoder Tôi có thể đã nhầm lẫn nhưng xem xét tôi đã viết câu trả lời này vào năm 2009, tôi nghĩ rằng họ chưa có Doctrine 2. Doctrine 1 có một API theo kiểu ActiveRecord nhiều hơn phiên bản thứ hai của họ (và tốt hơn nhiều, tôi nên thêm) –

+0

Sau đó, xấu của tôi. Tôi chỉ sử dụng Doctrine 2 :) – ZeeCoder

Các vấn đề liên quan