Tôi không hiểu cách sử dụng "DI container" này. Các ví dụ được hiển thị trên trang web chính thức cho tôi biết không có gì: http://pimple.sensiolabs.orgHiểu Pimple
Về cơ bản tôi có một trang web đơn giản, bao gồm một nhóm lớp: lớp DB, lớp Cache, Lớp người dùng và một vài thứ khác xử lý các loại nội dung.
Tất cả các lớp này giống như "dịch vụ" được đề cập trong Pimple và mỗi dịch vụ sẽ có thể gọi một dịch vụ khác. Ngay bây giờ tôi đang khởi tạo các dịch vụ trong một lớp học chính mà tôi sử dụng nó như một singleton để chia sẻ các dịch vụ trên các lớp khác.
Từ những gì tôi đọc, Pimple thực hiện chính xác loại điều này, nhưng làm cách nào để sử dụng? : s
Được coi là thực hành tốt để cung cấp cho một lớp toàn bộ vùng chứa? Điều đó không vi phạm luật demeter, nhờ đó bạn đang cho một lớp nhiều hơn cần làm công việc của mình? – AgmLauncher
@AgmLauncher Luật Demeter không áp dụng cho các phương pháp tạo đối tượng theo giấy gốc trên LoD. Vì một Service Locator có hiệu quả là một nhà máy tạo ra các đối tượng, nó không thực sự vi phạm LoD. Tuy nhiên, tất cả các lớp bằng cách sử dụng một Service Locator sẽ có một sự phụ thuộc vào SL sau đó nó sẽ sử dụng lại, vì vậy tốt hơn là không nên sử dụng nó như một nhưng theo cách sử dụng được gợi ý trong liên kết đầu tiên tôi đưa ra. – Gordon
Nếu bạn tiêm toàn bộ thùng chứa Pimple trong hàm tạo, làm thế nào chúng ta có thể biết phụ thuộc thực sự cho lớp SomeClassThatNeedsSession là gì? Làm thế nào tôi có thể biết những phụ thuộc để giả lập cho các bài kiểm tra? –