Tôi có câu hỏi về các phương pháp hay nhất trong Symfony 2. Xin lỗi nếu có chút mơ hồ và chủ quan. Tôi đoán tôi có thể tổng hợp câu hỏi của mình là:Thực hành tốt nhất của Symfony. Truy vấn có nên nằm trong kho hoặc dịch vụ không?
"Các kho lưu trữ có luôn đúng chỗ cho các truy vấn không?".
Hiện tại, tôi đang đặt hầu hết các truy vấn học thuyết của mình vào kho lưu trữ thực thể. Hầu hết các hành động điều khiển của tôi làm những việc điển hình như truy vấn cho một thực thể hoặc tập hợp các thực thể, ném một ngoại lệ hoặc chuyển hướng tùy thuộc vào kết quả của điều đó, nếu không cập nhật một hoặc nhiều thực thể. Hầu hết các hành động phức tạp hơn có thể được thực hiện hiệu quả với các truy vấn chuẩn -> find, -> findBy etc. Hầu hết yêu cầu tham gia. Khi một truy vấn liên quan đến nhiều thực thể, đôi khi tôi không chắc chắn kho lưu trữ nào nên đi vào. Tôi đoán có thực thể gốc của truy vấn nhưng ... đôi khi dữ liệu từ các thực thể được kết nối quan trọng và có liên quan hơn để đặt nó vào kho chứa của thực thể gốc.
Điều đó hoạt động tốt nhưng tôi có xu hướng kết thúc với nhiều truy vấn gần giống nhau nhưng hơi khác nhau trong kho của tôi. Đến với tên và theo dõi chính xác những gì mỗi người làm có thể gây nhầm lẫn và tẻ nhạt. Hầu hết các truy vấn này chỉ được sử dụng bởi một hoặc hai (thường hiếm khi được sử dụng) các hành động điều khiển trong cùng một bộ điều khiển. Tôi cảm thấy như tôi đang làm lộn xộn kho của mình với quá nhiều công cụ chuyên dùng, ít khi được sử dụng.
Dường như tất cả nhưng hành động đơn giản nhất phải được đóng gói trong một đối tượng hoặc dịch vụ. Vì vậy, tôi đã bắt đầu thực hiện rất nhiều truy vấn của mình trực tiếp trong dịch vụ chứ không phải là một kho lưu trữ. Thật dễ dàng để xem xét hành động ở một nơi. Đây có phải là một thực hành không sao?
bộ điều khiển phải là một lớp thực sự mỏng giữa thế giới ứng dụng và thế giới http và tôi khuyên bạn nên luôn đặt các truy vấn vào kho lưu trữ. –