Puncte:0

De ce nu este găsit Endroid\QrCode\QrCode?

drapel cn
ArK

Am creat un modul personalizat și am instalat endroid/qrcode biblioteca din modulul meu folosind Composer. Când încerc să folosesc acea bibliotecă, primesc următoarea eroare.

Eroare: clasa „Endroid\QrCode\QrCode” nu a fost găsită în Drupal\shopexp\Plugin\Block\ShopExp->build() (linia 25 din modules\custom\shopexp\src\Plugin\Block\ShopExp.php).

Codul care utilizează biblioteca este următorul.

spațiu de nume Drupal\shopexp\Plugin\Block;
utilizați Drupal\Core\Block\BlockBase;
utilizați Endroid\QrCode\QrCode;

clasa ShopExp extinde BlockBase {    
  funcția publică createpr() {
      $qr = QrCode::create("https://site.com");
  }  
  public function build() {
    $qr = nou QrCode();
    întoarcere [
      '#markup' => 'mesaj de testare',
    ];
  }
}

The compozitor.json fișierul utilizat de modul este următorul.

{
    „necesită”: {
        „endroid/qr-code”: „^2.5”
    }
}

Structura folderului este următoarea.

captură de ecran

drapel fr
De ce să nu folosiți modulul existent pentru asta, în loc să vă scrieți propriul cod? Și dacă nu face exact ceea ce doriți, atunci poate vă ajutați cu modulul respectiv. https://www.drupal.org/project/endroid_qr_code
ArK avatar
drapel cn
ArK
@anonymous De fapt, am încercat să reduc numărul de module și am încercat să includ și alte funcționalități într-un singur modul
drapel fr
Asta e o logică greșită. Ce este în neregulă cu multe module? Este tot același număr de linii de cod, indiferent unde le-ai pune. Indiferent, IMO ai o abordare greșită. Colaborați și faceți codul existent mai bun pentru toată lumea, nu vă rezolvați doar propria problemă.
ArK avatar
drapel cn
ArK
@anonim vă înțeleg punctul de vedere. Dar problema este în cazul în care am greșit folosind o bibliotecă PHP pentru a o folosi în interiorul unui bloc după ce a fost inclusă prin compozitor
Puncte:1
drapel fr

Trebuie să compozitorul necesită endroid/qrcode din directorul rădăcină Drupal, nu din directorul modul personalizat. Pachetul trebuie instalat în directorul principal al furnizorului împreună cu toate celelalte pachete utilizate de Drupal, altfel încărcătorul de clasă nu îl poate găsi.

ArK avatar
drapel cn
ArK
dacă includ în compozitorul rădăcină json înseamnă ce se întâmplă dacă folosesc același modul pentru alt sistem. Instalarea acestui modul într-o altă instanță drupal va include dependențele?
drapel cn
Nu - dacă doriți ca Composer să instaleze automat dependențele pentru modulul dvs., modulul dvs. în sine trebuie să fie instalat de Composer. Cu excepția cazului în care utilizați ceva de genul plugin-ului de îmbinare compozitor, care ar putea fi o opțiune, dar care va necesita, de asemenea, modificări la compusul.json al fiecărui site.

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.