Tôi vừa bắt đầu thiết lập một ứng dụng ZF2 mới cho một dự án mới, dựa trên bộ xương ZF2 và đang xem hướng dẫn của họ trên Models.Mô hình ZF2 được chia sẻ giữa các Mô-đun
tl; dr: làm cách nào để chia sẻ Mô hình giữa nhiều mô-đun khác nhau, bằng cách đặt nó ở đâu đó ở cấp cao hơn (bên ngoài/mô-đun)?
Chúng tôi có một số module thiết lập như sau:
/
/module/ModuleName
/module/ModuleName/config
/module/ModuleName/src
/module/ModuleName/src/ModuleName
Tôi chỉ muốn thiết lập một thư mục /module/ModuleName/src/ModuleName/Model/TableName.php
, nhưng sau đó tôi nhận ra: bảng mà sẽ cần phải được truy cập trong module khác nữa. Vậy tôi nên làm gì đây?
Tôi có nên đặt thư mục Mô hình vào /module/Model
hoặc sẽ được coi là một mô-đun tức là site.com/model (dựa trên cấu hình hiện tại của chúng tôi).
Tôi có nên sao chép và dán mô hình giữa các địa điểm không? Tôi có nên dán các mô hình trở lại trong /vendor/library/Company/Model
ở đâu đó không? Không hoàn toàn chắc chắn nếu có một thực hành tốt nhất cho việc này!
Câu hỏi 2: Hướng dẫn cũng đề xuất sử dụng ServiceManager để khởi tạo các mô hình cơ sở dữ liệu để sử dụng cùng một cá thể. Nếu tôi có một mô-đun với 5 bộ điều khiển, với mỗi bộ điều khiển truy cập các bảng hoàn toàn riêng biệt (nói 4 bảng mỗi bảng)? Dường như với tôi rằng nó sẽ redundantly khởi tạo 16 bảng trên mỗi tải trang (cho các bộ điều khiển khác trong mô-đun đó). Một bảng khởi tạo đơn thêm 55ms vào tải trang. Có cách nào để giái quyết vấn đề này không?? Tôi không chắc chắn làm thế nào tôi muốn di chuyển cấu hình để hành động của bộ điều khiển dựa trên những gì hướng dẫn không khởi tạo tablegateway?
Cảm ơn rất nhiều vì đã trả lời của bạn Andrew! Bạn đang đúng: # 2, có vẻ như tôi đã nhìn vào điều sai trái trong wincachegrind. Tin tốt! Tôi đã nhìn thấy 'UserMapper' xung quanh rất nhiều trong một vài hướng dẫn - đó chỉ là một ví dụ, hoặc nó là một điều ZF2 thực tế? Liên quan đến # 1: Vì vậy, nếu tôi đăng ký chức năng 'Manufacturing \ Model \ WorkflowTable '=> ($ sm) {..}', thì tôi có thể gọi '$ this-> getServiceLocator() -> get ('Manufacturing \ Model \ WorkflowTable') 'trong bất kỳ thư viện nào khác? Nó sẽ là một thực hành tiêu chuẩn hơn để có một mô-đun cơ sở với các mô hình của chúng tôi ?? – Benno
Có ý tưởng, bạn có thể gọi nó trong bất kỳ mô-đun nào, tất cả các bản ghi dịch vụ quản lý được kết hợp với nhau để bạn có được mọi thứ từ tất cả các mô-đun – Andrew
UserMapper chỉ là một ví dụ mà tôi đã sử dụng, đó là một kịch bản phổ biến để mọi người sử dụng trình ánh xạ DataMapper pattern – Andrew