Hướng dẫn sử dụng php
Mặc dù nó có thể không bao gồm mọi trường hợp và làm hài lòng tất cả mọi người, nhưng nó có thể đóng vai trò như một bức tranh để giúp bạn bắt đầu tiêm phụ thuộc Nếu bạn không đồng ý với bất kỳ điều gì được giải thích trong hướng dẫn đó, không sao cả. Đó là ý kiến và bạn nên đưa ra ý kiến của riêng mình về tất cả các chủ đề này;). Nó không ngăn cản bạn sử dụng PHP-DI theo cách bạn muốn Quy tắc sử dụng vùng chứa và nội xạ phụ thuộcDưới đây là một số quy tắc cơ bản để làm theo
Viết bộ điều khiểnSử dụng phép nội xạ phụ thuộc trong bộ điều khiển thường là nơi gây tổn hại nhiều nhất Nếu chúng tôi lấy Symfony 2 làm ví dụ (nhưng điều này thường áp dụng cho mọi khung), đây là các tùy chọn của bạn
Điều này thật tệ, hãy xem quy tắc số 1
Điều này thật khó khăn khi bạn có nhiều hơn 5 phụ thuộc và hàm tạo của bạn là 15 dòng mã soạn sẵn
Đây là giải pháp chúng tôi khuyên dùng Thí dụ
Như bạn có thể thấy, giải pháp này yêu cầu rất ít mã, dễ hiểu và được hưởng lợi từ sự hỗ trợ của IDE (tự động hoàn thành, tái cấu trúc,…) Việc tiêm tài sản thường không được tán thành và vì những lý do chính đáng
NHƯNG nếu bạn tuân theo các phương pháp hay nhất chung về cách viết ứng dụng của mình, bộ điều khiển của bạn sẽ không chứa logic nghiệp vụ (chỉ định tuyến các cuộc gọi đến mô hình và ràng buộc các giá trị được trả về để xem) Vì thế
Giải pháp này mang lại nhiều lợi ích mà không có nhược điểm lớn, vì vậy chúng tôi khuyên bạn nên sử dụng các thuộc tính trong bộ điều khiển dịch vụ viếtVới một dịch vụ nhằm mục đích sử dụng lại, thử nghiệm và độc lập với khung của bạn, chúng tôi khuyên bạn không nên sử dụng các thuộc tính để đưa vào các phụ thuộc Thay vào đó, chúng tôi khuyên bạn nên sử dụng hàm tạo và tự động truyền
Bằng cách sử dụng tính năng tự động nối dây (được bật theo mặc định), bạn tiết kiệm được việc ràng buộc mọi tham số của hàm tạo trong cấu hình. PHP-DI sẽ đoán đối tượng nào nó cần đưa vào bằng cách kiểm tra các loại tham số của bạn Trong một số trường hợp, autowiring sẽ không đủ vì một số tham số sẽ là vô hướng (chuỗi, int,…). Tại thời điểm đó, bạn sẽ cần xác định rõ ràng những gì cần thêm vào tham số vô hướng đó và để làm điều này, bạn có thể
Thí dụ
Thí dụ
Giải pháp này thường được ưu tiên hơn vì nó tránh xác định lại mọi thứ ghi chú bên. như đã giải thích trong quy tắc số 3, chúng tôi khuyên bạn nên sử dụng gợi ý kiểu đối với các giao diện. Trong trường hợp đó, bạn sẽ cần ánh xạ các giao diện tới quá trình triển khai mà vùng chứa sẽ sử dụng trong cấu hình
Sử dụng thư việnKhi sử dụng các thư viện như logger, ORM,… đôi khi bạn cần cấu hình chúng Trong trường hợp đó, chúng tôi khuyên bạn nên xác định các phụ thuộc này trong tệp cấu hình của mình. Chúng tôi cũng khuyên bạn nên sử dụng chức năng ẩn danh khi cấu hình hơi phức tạp Chức năng ẩn danh cho phép bạn viết mã PHP thực, điều này thật tuyệt vì bạn có thể sử dụng tài liệu của thư viện, bạn nhận được hỗ trợ IDE và bạn là nhà phát triển PHP nên bạn đã biết ngôn ngữ này;) Đây là một ví dụ với Monolog, một trình ghi nhật ký PHP
Tất nhiên, như bạn có thể thấy, chúng tôi đã sử dụng giao diện PSR-3 để tiêm. Bằng cách đó, chúng tôi có thể thay thế Monolog bằng bất kỳ bộ ghi PSR-3 nào bất cứ khi nào chúng tôi muốn, chỉ bằng cách thay đổi cấu hình này |