Puncte:0

Cum se creează un export de configurare astfel încât să instaleze două module, dintre care unul are o dependență de celălalt?

drapel cn

Am scris un modul personalizat care folosește jwt.transcoder serviciu de la jwt modul. La rândul său, oferă un alt serviciu:

$ cat mymodule.services.yml
Servicii:
  mymodule.jwt:
    clasa: Drupal\mymodule\Services\Jwt
    argumente: [ '@jwt.transcoder', '@event_dispatcher' ]

Totul a decurs fără probleme în timpul dezvoltării. Cu toate acestea, nici modulul jwt, nici noul meu modul personalizat, nu au fost instalate pe site-ul nostru înainte de a începe dezvoltarea acestei caracteristici.

Am adăugat ambele module cu compozitor și am făcut un export de configurare pentru a le activa (și a configura cheile criptografice etc.). Cu toate acestea, când merg să fac o implementare, primesc o eroare la importul de configurare, care se pare că vine dintr-o dependență de jwt.transcoder serviciu, care nu este încă instalat în acest moment.

În CheckExceptionOnInvalidReferenceBehaviorPass.php linia 86:
                                                                                      
  Serviciul „mymodule.jwt” are o dependență de un serviciu inexistent „jwt.transcoder”. 

Cu procesul nostru de implementare, putem implementa doar o bază de cod la un moment dat, ceea ce înseamnă că, dacă aș vrea să fac un import de configurare pentru a obține jwt instalat mai întâi și un alt import de configurare cu activarea modulului meu personalizat, ar trebui să fac o a doua implementare pentru a obține a doua bază de cod de configurare pe server.

Există vreo modalitate de a obține importul de configurare pentru a instala mai întâi jwt și apoi modulul meu personalizat, într-o singură bază de cod, astfel încât această dependență să fie rezolvată?

sonfd avatar
drapel in
Este „jwt” marcat ca o dependență a „mymodule” în mymodule.info.yml?
drapel cn
@sonfd asta a fost! Mulțumesc. Vă rog să puneți asta într-un răspuns și voi accepta :)
Puncte:3
drapel in

Trebuie să marcați jwt modul ca o dependență a mymodule în mymodule.info.yml, prin intermediul dependențe cheie.

dependențe: o listă cu alte module de care depinde modulul tău. Dependența de modulele de bază sau de contrib Drupal ar trebui să fie spațiate de nume în formatul {proiect}:{modul}, unde {proiect} este numele proiectului așa cum apare în adresa URL Drupal.org (de exemplu, drupal.org/project/views) și { module} este numele mașinii modulului. Dependențele pot include și restricții de versiune, de exempluwebform:webform (>=8.x-5.x). Rețineți că, dacă modulul dvs. are dependențe de alte module sau biblioteci contribuite, acestea ar trebui să fie declarate în fișierul composer.json al modulului. Dacă aveți module personalizate locale care depind unul de celălalt, puteți utiliza {module}:{module} (sau {module}:{submodule} pentru sub-module.)

Sursă: Informați Drupal despre modulul dvs. cu un fișier .info.yml

De exemplu, în interiorul dvs. mymodule.info.yml:

nume: Modulul meu
tip: modul
...
dependențe:
  - jwt:jwt

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.