Magento 2 chứa một số tệp lớp được tạo trước hoặc được tạo nhanh chóng. Họ sông ở
var/generated
Các tệp được tạo này bao gồm các lớp nhà máy. Từ tài liệu này , tôi hiểu rằng một lập trình viên sử dụng các lớp của nhà máy để khởi tạo các đối tượng "không thể tiêm". Một đối tượng "không thể tiêm" là một đối tượng không thể được thêm vào thông qua __constructor
việc tiêm phụ thuộc, thường là vì nó yêu cầu người dùng nhập liệu để khởi tạo.
Điều không rõ ràng từ tài liệu này là làm thế nào Magento 2 biết nó cần để tạo ra một lớp nhà máy. Bit này
Nếu nhà máy không tồn tại gặp phải trình quản lý đối tượng trong chế độ thời gian chạy hoặc trình biên dịch, trình quản lý đối tượng sẽ tạo nhà máy.
làm cho nó nghe giống như nếu tôi sử dụng một lớp nhà máy trong trình quản lý đối tượng (hoặc, bằng phần mở rộng, trong phần phụ thuộc __constructor), Magento 2 sẽ tạo ra nó cho tôi. Nhưng làm thế nào để người quản lý đối tượng biết thứ tôi yêu cầu là một nhà máy?
Ngoài ra, dường như có hai lệnh để tự động tạo (hoặc "biên dịch") tất cả các lớp được tạo. Chạy một trong hai lệnh này sẽ tạo ra một số lượng lớn các lớp Factory. Những tệp cấu hình và / hoặc mã nào là những lệnh này đang xem xét để tạo các đối tượng nhà máy cần thiết?
Tôi biết rằng việc truy tìm trình quản lý đối tượng và / hoặc mã lệnh hoàn toàn sẽ tiết lộ điều này, nhưng tôi hy vọng sẽ tránh được hành trình dài và gian nan đó.