Symfony обновление завершается неудачно с ошибками YAML - PullRequest
1 голос
/ 25 января 2020

У меня есть веб-приложение, в настоящее время работающее на Symfony 4.3.5 без проблем.

Я звоню "php composer .phar update" в моей директории проекта. Composer начинает загружать и обновлять пакеты до версии 4.4 и, наконец, завершается с ошибкой


Executing script cache:clear [KO]
 [KO]
Script cache:clear returned with error code 1
!!  
!!  In FileLoader.php line 180:
!!                                                                                 
!!    The file "/home/markus/Programming/personal/config/packages/sonata_admin.ya  
!!    ml" does not contain valid YAML: Unexpected characters near "                
!!    - {                                                                          
!!        route: app_workflows_erzeugemassnahmen_index,                            
!!        label: "Fällige Massnahmen erstellen",                                   
!!        roles: [ROLE_SUPER_ADMIN, ROLE_ADMIN_WORKFLOWS]                          
!!      }" at line 76 (near "  }") in /home/markus/Programming/personal/config/pa  
!!    ckages/sonata_admin.yaml (which is loaded in resource "/home/markus/Program  
!!    ming/personal/config/packages/sonata_admin.yaml").                           
!!                                                                                 

Он жалуется на ту же ошибку в In YamlFileLoader. php строка 693: и In Inline. php строка 94:

Этот файл "sonata_admin.yaml" отлично работал раньше. Я использую "yamllint", чтобы проверить файл, и он не находит ничего плохого. Я загружаю файл в онлайн-чеки YAML, и они не обнаруживают никаких проблем.

Интересные наблюдения: - В сообщении говорится, что ошибка находится в строке 76, но показанный окружающий текст взят из строки 48 - Когда я полностью очищаю файл, обновление завершается с почти той же ошибкой в ​​совершенно другом файле

Я использую PHP 7.3 и самый последний composer. Есть идеи?

Вот файл конфигурации:

---
# Sonata Admin Bundle
sonata_block:
  default_contexts: [cms]
  blocks:
    # enable the SonataAdminBundle block
    sonata.admin.block.admin_list: ~
    sonata.block.service.geburtstagsliste: ~
    sonata.block.service.vertragsliste: ~
    sonata.block.service.jubilare: ~
    sonata.block.service.konsistenzcheck: ~
    sonata.block.service.workflowstatistik: ~
    sonata.block.service.schulungsliste: ~
    # sonata.block.service.testblock: ~

sonata_admin:
  persist_filters: true
  # for hide mosaic view button on all screen using `false`
  show_mosaic_button: false
  title: "Personal Admin"
  title_logo: "/bundles/sonatauser/default_avatar.png"
  security:
    handler: sonata.admin.security.handler.role
  dashboard:
    groups:
      Stammdaten Workflows:
        icon: '<i class="glyphicon glyphicon-folder-close"></i>'
        roles: [ROLE_ADMIN_STAMMDATEN, ROLE_SUPER_ADMIN]
      Stammdaten:
        icon: '<i class="glyphicon glyphicon-folder-close"></i>'
        roles: [ROLE_ADMIN_STAMMDATEN, ROLE_SUPER_ADMIN]
      Schulungen:
        icon: '<i class="glyphicon glyphicon-folder-close"></i>'
        label: ~
        label_catalogue: ~
        items:
          - {route: app_schulungsplanung_list, label: "Schulungsplanung"}
          - admin.schulungsevent
        roles: [ROLE_ADMIN_SCHULUNGSPLANUNG, ROLE_SUPER_ADMIN]
      Workflows/Massnahmen:
        icon: '<i class="glyphicon glyphicon-folder-close"></i>'
        items:
          - {
            route: app_workflows_ausstehendemassnahmen_index,
            label: "Übersicht Massnahmen",
          }
          - {
            route: app_workflows_erzeugemassnahmen_index,
            label: "Fällige Massnahmen erstellen",
            roles: [ROLE_SUPER_ADMIN, ROLE_ADMIN_WORKFLOWS],
          }
        roles: [ROLE_USER_WORKFLOWS, ROLE_SUPER_ADMIN, ROLE_ADMIN_WORKFLOWS]
      Workflows/Offboarding:
        icon: '<i class="glyphicon glyphicon-folder-close"></i>'
        items:
          - {
            route: app_workflows_ereignisuebersicht_index,
            label: "Übersicht Offboarding",
          }
          - {
            route: app_bewertungen_bewertungenuebersicht_index,
            label: "Übersicht Bewertungen",
          }
        roles: [ROLE_SUPER_ADMIN, ROLE_ADMIN_WORKFLOWS]
      Workflows/Bewertungen:
        icon: '<i class="glyphicon glyphicon-folder-close"></i>'
        items:
          - {
            route: app_bewertungen_bewertungenuebersicht_index,
            label: "Übersicht Bewertungen",
          }
        roles: [ROLE_USER_ZEUGNISSE]
      Workflows/Onboarding:
        icon: '<i class="glyphicon glyphicon-folder-close"></i>'
        items:
          - {
            route: app_workflows_ereignisuebersicht_onboardinguebersicht,
            label: "Übersicht Onboarding",
          }
          - {
            route: app_onboardingwizard_onboardingwizard_index,
            label: "Onboarding Wizard",
          }
        roles: [ROLE_SUPER_ADMIN, ROLE_ADMIN_WORKFLOWS]
    blocks:
      - {
        position: left,
        type: sonata.block.service.geburtstagsliste,
        roles: [ROLE_PERSONAL, ROLE_SUPER_ADMIN],
      }
      - {
        position: left,
        type: sonata.block.service.workflowstatistik,
        roles: [ROLE_ADMIN_WORKFLOWS, ROLE_SUPER_ADMIN],
      }
      - {
        position: right,
        type: sonata.block.service.vertragsliste,
        roles: [ROLE_PERSONAL, ROLE_SUPER_ADMIN],
      }
      - {
        position: right,
        type: sonata.block.service.schulungsliste,
        roles: [ROLE_PERSONAL, ROLE_SUPER_ADMIN],
      }
      - {
        position: right,
        type: sonata.block.service.konsistenzcheck,
        roles: [ROLE_PERSONAL, ROLE_SUPER_ADMIN],
      }
      - {
        position: left,
        type: sonata.block.service.jubilare,
        roles: [ROLE_PERSONAL, ROLE_SUPER_ADMIN],
      }

1 Ответ

0 голосов
/ 25 января 2020

Итак, я просто предполагаю, что причина в { и } в ваших многострочных сопоставлениях. Чего я не понимаю, так это того, что это когда-либо работало ... (может быть, yaml-парсер стал более строгим?)

В любом случае, насколько я могу судить, определение синтаксиса НЕ требует { и } если отображение разбито на несколько строк:

-
  name: Mark McGwire
  hr:   65
  avg:  0.278
-
  name: Sammy Sosa
  hr:   63
  avg:  0.288

source: 2.1 Коллекции / Пример 2.4, Последовательность отображений

in Фактически, единственное место, где { следует за - в спецификации c, это когда отображение записывается в одну строку.

Ооо, может быть, это так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...