Я розробник та підтримуючий проект CiviCRM. Ми намагалися зробити CiviCRM з версією Drupal 8 і пройшли довгий шлях. Ми б’ємось головами об наші колективні клавіатури, намагаючись визначити головний блокатор проекту.
CiviCRM вже деякий час використовує Symfony, і версія, яка включена, відрізняється від тієї, що постачається з Drupal.
Ми можемо встановити CiviCRM разом з Drupal 8, але після його встановлення ми не зможемо встановити жоден інший модуль Drupal.
Я вважаю, що це зводиться до ситуації, коли якимось чином версія CiviCRM Symfony завантажується до версії Drupal, і це спричиняє проблеми.
Хтось знає про модуль Drupal 8, який включає іншу версію Symfony, ніж та, яка постачається з Drupal?
Нещодавно я натрапив на проект Людвіга. Цей модуль дозволяє реєструвати простори імен у класі, який розширюєтьсяServiceProviderBase
.
Чи можливо, щоб версія Drupal 8 модуля CiviCRM включала файл CivicrmServiceProvider.php, який визначає CivicrmServiceProvider
клас, і register()
метод, який додає простір імен контейнерів, щоб дозволити цьому працювати?
У багатьох файлах CiviCRM є use
такі заяви, як Drupal, починаючи з Symfony, як тут .
Ми фактично поміщаємо CiviCRM Core в папку Druc doc_root / бібліотеки і використовуємо модуль бібліотек.
Це репортаж для версії модуля 8.x CiviCRM Drupal , якщо хтось хоче подивитися, що ми отримали до цього часу. Якщо у когось є чарівний еліксир для цього, я можу вам сказати, що в нашій громаді буде багато щасливих людей. Тож якщо ви знаєте, як нам допомогти, будь ласка.
CiviCRM встановлюється, а сторінки CiviCRM працюють. Що не працює, це те, що після встановлення CiviCRM ми не можемо встановлювати інші модулі через сторінку адмін / модулі. Наскільки я знаю, це єдине, що порушено. Також установка модулів за допомогою Drush після установки CiviCRM працює.
Спроба встановити інший модуль після встановлення CiviCRM викликає таку помилку:
Фатальна помилка PHP: виклик невизначеного методу Symfony \ Компонент \ DependencyInjection \ Визначення :: setFactory () в /var/www/html/civi-for-d8/core/lib/Drupal/Core/DependencyInjection/YamlFileLoader.php на лінії 206
Це в Drupal 8.3.5. Спроба встановити CiviCRM для Drupal 8 в чистий примірник Drupal 8.4-dev викликає таку помилку:
Drupal \ Component \ Serialization \ Exception \ InvalidDataTypeException: Зарезервований індикатор "@" не може запустити звичайний скаляр; вам потрібно навести скаляр у рядку 8 (біля "аргументів: [@string_translation, @ civicrm.page_state]"). в Drupal \ Component \ Serialization \ YamlSymfony :: decode () (рядок 40 /var/www/html/drupal84/core/lib/Drupal/Component/Serialization/YamlSymfony.php).