Sono sviluppatore e manutentore del progetto CiviCRM. Abbiamo provato a realizzare una versione Drupal 8 CiviCRM e abbiamo fatto molta strada. Stiamo battendo la testa contro le nostre tastiere collettive cercando di immaginare un grosso blocco per il progetto.
CiviCRM usa Symfony da un po 'di tempo e la versione inclusa è diversa da quella fornita con Drupal.
Possiamo installare CiviCRM con Drupal 8, ma dopo averlo installato, non possiamo installare nessun altro modulo Drupal.
Credo che si riduce a una situazione in cui la versione CiviCRM di Symfony viene caricata prima della versione Drupal, e questo causa problemi.
Qualcuno sa di un modulo Drupal 8 che include una versione diversa di Symfony rispetto a quella fornita con Drupal?
Di recente mi sono imbattuto nel progetto Ludwig. Questo modulo consente la registrazione di spazi dei nomi in una classe che si estendeServiceProviderBase
.
Sarebbe possibile per la versione Drupal 8 del modulo CiviCRM di includere un file CivicrmServiceProvider.php, che definisce una CivicrmServiceProvider
classe e un register()
metodo che aggiunge uno spazio dei nomi contenitore per consentire che funzioni?
Molti file CiviCRM hanno use
dichiarazioni come Drupal che iniziano con Symfony, come qui .
In realtà abbiamo inserito CiviCRM Core nella cartella doc_root / libraries di Drupal e utilizziamo il modulo libraries.
Questo è il repository per il modulo CiviCRM Drupal versione 8.x , se qualcuno vuole vedere cosa abbiamo ottenuto finora. Se qualcuno ha l'elisir magico per questo, posso dirti che ci sarebbero molte persone felici nella nostra comunità. Quindi, se sai come aiutarci, per favore fallo.
CiviCRM si installa e le pagine di CiviCRM funzionano. Ciò che non funziona è che dopo l'installazione di CiviCRM, non è possibile installare altri moduli tramite la pagina admin / modules. Per quanto ne so questa è l'unica cosa che è rotta. Anche l'installazione di moduli con Drush, dopo l'installazione di CiviCRM, funziona.
Il tentativo di installare un altro modulo dopo l'installazione di CiviCRM provoca il seguente errore:
Errore irreversibile PHP: chiamata al metodo indefinito Symfony \ Component \ DependencyInjection \ Definition :: setFactory () in /var/www/html/civi-for-d8/core/lib/Drupal/Core/DependencyInjection/YamlFileLoader.php on line 206
Questo è in Drupal 8.3.5. Il tentativo di installare CiviCRM per Drupal 8 in un'istanza pulita di Drupal 8.4-dev provoca il seguente errore:
Drupal \ Component \ Serialization \ Exception \ InvalidDataTypeException: l'indicatore riservato "@" non può avviare un semplice scalare; devi citare lo scalare alla riga 8 (vicino a "argomenti: [@string_translation, @ civicrm.page_state]"). in Drupal \ Component \ Serialization \ YamlSymfony :: decode () (riga 40 di /var/www/html/drupal84/core/lib/Drupal/Component/Serialization/YamlSymfony.php).