2010-02-10 34 views
11

Tôi đang sử dụng php và xây dựng MVC cho ứng dụng web của mình. Tôi đến bước mà tôi cần phải kết nối với DB của tôi, nhìn vào URL hiện tại, so sánh với dữ liệu trong DB của tôi, và sau đó trả lại nội dung chính xác từ DB của tôi cho người dùng.Nơi kết nối với DB trong MVC

Câu hỏi của tôi là, tôi nên đặt mã nào kết nối với DB và xử lý mã đó? Điều này có đi trong lớp Model không?

Trả lời

10

Mô hình phải là thực thể chủ động sử dụng kết nối cơ sở dữ liệu, đối với các mô hình đơn giản sử dụng cổng bảng/triển khai bản ghi hoạt động có thể hoạt động. Đối với các mô hình phức tạp hơn, một trình ánh xạ dữ liệu sẽ tách biệt cơ sở dữ liệu với phần còn lại của ứng dụng của bạn (làm cho nó ít xâm lấn hơn để thay đổi một back-end lưu trữ).

Bạn điều khiển phải xử lý yêu cầu và chuyển bất kỳ dữ liệu có liên quan nào là cần thiết cho mô hình.

Điều đó nói rằng, chỉ cần thiết lập kết nối cơ sở dữ liệu thường được thực hiện bởi một số loại tập lệnh khởi động. Mô hình (hoặc trình ánh xạ dữ liệu) sau đó sử dụng kết nối. Tôi không chắc liệu kỹ thuật đó có nằm trong 'bộ điều khiển' hay không. Trong thực tế, hầu hết các khung công tác đều có bootstraps, bộ định tuyến và bộ điều khiển phía trước - bất cứ điều gì bạn gọi là cơ sở dữ liệu của bạn phải là được sử dụng bởi mô hình nhưng thiết lập bởi bootstrap của bạn.

4

Tất cả tương tác cơ sở dữ liệu nằm bên trong lớp Mô hình.

2

Vâng, mô hình chỉ là định nghĩa của một đối tượng, có thể là Xe chẳng hạn. Vì vậy, kết nối với cơ sở dữ liệu, phải nằm trong lớp trừu tượng Model (lớp Vehicle sẽ kế thừa), với các phương thức có thể lưu thông tin này.

Nếu bạn muốn linh hoạt hơn và nhiều nội dung nâng cao hơn đã được thực hiện, hãy sử dụng khung, cá nhân tôi sẽ giới thiệu CakePHP.

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