Здравствуйте!
Есть такая проблема: сайт сделан на друпал 9, достаточно простой, модули устанавливались вручную через админку, компосер не использовался.
На сайте есть форма заявки, реализована программно. При разработке отлично работала, но после установки возникли проблемы с валидацией. Валидация имеет такой вид:
<?php
if ($errors = $form_state->getErrors()) {
// Add error to fields using Symfony Accessor
$accessor = PropertyAccess::createPropertyAccessor();
foreach ($errors as $field => $error) {
if ($accessor->getValue($form, $field)) {
$accessor->setValue($form, $field.'[#prefix]', '<div class="form-group error">');
$accessor->setValue($form, $field.'[#suffix]', '<div class="input-error-desc">' .$error. '</div></div>');
}
}
}
?>
т.е. для валидации используется пакет symfony/property-access. После переноса валидация перестала работать, пакет где то потерялся.
Error: Class 'Symfony\Component\PropertyAccess\PropertyAccess' not found in Drupal\inewton\Form\AppointmentForm->validateForm() (line 177 of modules/custom/inewton/src/Form/AppointmentForm.php).
Drupal\inewton\Form\AppointmentForm->validateForm(Array, Object)
call_user_func_array(Array, Array) (Line: 82)
Как его установить? Достаточно ли просто запустить composer require symfony/property-access в терминале на хостинге?
Комментарии
Неплохо бы конечно вспомнить каким образом эта недостающая библиотека была установлена при разработке если композер не использовался.
Я делал подобные вещи, оно в принципе работает, но попутно композер может накуролесить в других компонентах. Мне, например, при установке невинного cloudflare api композер снес (заменил на исходные) .htaccess и robots.txt. Я бы сказал, попробовать можно, но обязательно предварительно сделать полный бэкап, а потом проверить какие файлы изменились помимо требуемых.