Điểm:2

Nội xạ phụ thuộc trong FieldItemList

lá cờ ph

Tôi đang tạo một vài lớp tùy chỉnh mở rộng FieldItemList và chúng cần thêm một số dịch vụ.

Tôi đã xem xét các lớp cốt lõi mở rộng lớp đó và không có lớp nào thực hiện phép nội xạ phụ thuộc, tất cả chúng đều gọi \Drupal::service().

Có cách nào để tiêm dịch vụ ở đây hay tôi nên làm theo mẫu cốt lõi?

4uk4 avatar
lá cờ cn
Không, vẫn không có cách nào để tiêm dịch vụ và bạn phải sử dụng trình bao bọc dịch vụ tĩnh. Xem nhận xét này và vấn đề được liên kết https://drupal.stackexchange.com/questions/224247/how-do-i-inject-a-dependency-into-a-fieldtype-plugin/224248#comment273484_224248
leymannx avatar
lá cờ ne
Điều này có trả lời câu hỏi của bạn không? [Làm cách nào để đưa phần phụ thuộc vào plugin @FieldType?](https://drupal.stackexchange.com/questions/224247/how-do-i-inject-a-dependency-into-a-fieldtype-plugin)
Lambic avatar
lá cờ ph
Nói đúng ra, FieldItemList không phải là plugin loại trường, nhưng có vẻ như điều tương tự cũng được áp dụng. Tôi sẽ gói các dịch vụ tôi cần trong dịch vụ của riêng mình, vì vậy tôi chỉ phải gọi trình bao bọc dịch vụ một lần.
Điểm:1
lá cờ cn

Trình quản lý plugin loại trường khởi tạo cả hai, FieldItem và FieldItemList thông qua trình quản lý dữ liệu đã nhập:

Drupal\Core\Field\FieldTypePluginManager

  chức năng công cộng createFieldItemList(FieldableEntityInterface $entity, $field_name, $values ​​= NULL) {
    // Tận dụng nguyên mẫu API dữ liệu đã nhập để khởi tạo nhanh.
    trả về $this->typedDataManager->getPropertyInstance($entity->getTypedData(), $field_name, $values);
  }

  chức năng công cộng createFieldItem(FieldItemListInterface $items, $index, $values ​​= NULL) {
    // Tận dụng nguyên mẫu API dữ liệu đã nhập để khởi tạo nhanh.
    trả về $this->typedDataManager->getPropertyInstance($items, $index, $values);
  }

Để có thể tiêm dịch vụ, bạn cần đợi cho đến khi vấn đề này Cho phép các plugin dữ liệu đã nhập nhận các phần phụ thuộc được chèn được giải quyết.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.