Jestem programistą i opiekunem projektu CiviCRM. Próbowaliśmy stworzyć CiviCRM w wersji Drupal 8 i przeszliśmy długą drogę. Uderzamy głowami w klawisze kolektywne, próbując znaleźć główny bloker dla tego projektu.
CiviCRM od jakiegoś czasu używa Symfony, a dołączona wersja jest inna niż ta, która jest dostarczana z Drupalem.
Możemy zainstalować CiviCRM z Drupal 8, ale po jego zainstalowaniu nie możemy zainstalować żadnego innego modułu Drupal.
Wierzę, że sprowadza się to do sytuacji, w której wersja Symfony CiviCRM ładuje się przed wersją Drupala, co powoduje problemy.
Czy ktoś wie o module Drupal 8, który zawiera inną wersję Symfony niż ten dostarczany z Drupalem?
Ostatnio natknąłem się na projekt Ludwig. Ten moduł umożliwia rejestrację przestrzeni nazw w rozszerzonej klasieServiceProviderBase .
Czy byłoby możliwe, aby wersja CiviCRM w wersji Drupal 8 zawierała plik CivicrmServiceProvider.php, który definiuje CivicrmServiceProviderklasę, oraz register()metodę, która dodaje przestrzeń nazw kontenera, aby to działało?
Wiele plików CiviCRM ma usetakie instrukcje, jak Drupal zaczynające się od Symfony, jak tutaj .
W rzeczywistości umieszczamy CiviCRM Core w folderze Drupal doc_root / libraries i używamy modułu bibliotek.
To jest repozytorium dla wersji CiviCRM Drupal w wersji 8.x. , jeśli ktoś chce spojrzeć na to, co do tej pory mamy. Jeśli ktoś ma do tego magiczny eliksir, mogę powiedzieć, że w naszej społeczności byłoby wielu szczęśliwych ludzi. Jeśli więc wiesz, jak nam pomóc, zrób to.
CiviCRM się instaluje, a strony CiviCRM działają. Nie działa to, że po zainstalowaniu CiviCRM nie możemy instalować innych modułów za pośrednictwem strony admin / moduły. O ile wiem, to jedyna zepsuta rzecz. Działa także instalacja modułów z Drush, po zainstalowaniu CiviCRM.
Próba zainstalowania innego modułu po zainstalowaniu CiviCRM powoduje następujący błąd:
Błąd krytyczny PHP: Wywołanie niezdefiniowanej metody Symfony \ Component \ DependencyInjection \ Definition :: setFactory () w /var/www/html/civi-for-d8/core/lib/Drupal/Core/DependencyInjection/YamlFileLoader.php w linii 206
To jest w Drupal 8.3.5. Próba zainstalowania CiviCRM dla Drupala 8 w czystej instancji Drupala 8.4-dev powoduje następujący błąd:
Drupal \ Component \ Serialization \ Exception \ InvalidDataTypeException: Zarezerwowany wskaźnik „@” nie może uruchomić zwykłego skalara; musisz zacytować skalar w linii 8 (w pobliżu „argumentów: [@string_translation, @ civicrm.page_state]”). w Drupal \ Component \ Serialization \ YamlSymfony :: decode () (wiersz 40 /var/www/html/drupal84/core/lib/Drupal/Component/Serialization/YamlSymfony.php).