Php Symfony更新失败,出现YAML错误

Php Symfony更新失败,出现YAML错误,php,symfony,yaml,Php,Symfony,Yaml,我有一个web应用程序目前在Symfony 4.3.5上运行,没有任何问题 我在项目目录中调用“php composer.phar update”。Composer开始下载软件包并将其升级到版本4.4,最终失败 它在YamlFileLoader.php第693行和Inline.php第94行中抱怨了相同的错误: 这个“sonata_admin.yaml”文件以前工作得非常好。我使用“Yamlint”检查文件,它没有发现任何错误。我将文件上传到在线YAML检查,他们没有发现任何问题 有趣的观察结

我有一个web应用程序目前在Symfony 4.3.5上运行,没有任何问题

我在项目目录中调用“php composer.phar update”。Composer开始下载软件包并将其升级到版本4.4,最终失败


它在YamlFileLoader.php第693行和Inline.php第94行中抱怨了相同的错误:

这个“sonata_admin.yaml”文件以前工作得非常好。我使用“Yamlint”检查文件,它没有发现任何错误。我将文件上传到在线YAML检查,他们没有发现任何问题

有趣的观察结果: -消息说错误在第76行,但显示的周围文本来自第48行 -当我完全清空文件时,升级失败,在完全不同的文件中出现几乎相同的错误

我使用PHP7.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],
      }
---
#奏鸣曲管理包
奏鸣曲组:
默认上下文:[cms]
阻碍:
#启用SonataAdminBundle块
sonata.admin.block.admin\u列表:~
sonata.block.service.geburtstagsliste:~
奏鸣曲.block.service.vertragslist:~
奏鸣曲.block.service.jubilare:~
sonata.block.service.konsistencheck:~
sonata.block.service.workflowstatistik:~
奏鸣曲.block.service.schulungsliste:~
#sonata.block.service.testblock:~
索纳塔行政:
persist\u过滤器:true
#在所有屏幕上使用'false'隐藏马赛克视图按钮`
显示镶嵌按钮:错误
标题:“个人管理员”
标题\u徽标:“/bundles/sonatauser/default\u avatar.png”
安全:
处理程序:sonata.admin.security.handler.role
仪表板:
组:
Stammdaten工作流:
图标:“”
角色:[角色管理员,角色超级管理员]
Stammdaten:
图标:“”
角色:[角色管理员,角色超级管理员]
舒伦根:
图标:“”
标签:~
标签和目录:~
项目:
-{路线:app_schulungsplanug_列表,标签:“schulungsplanug”}
-管理员:schulungsevent
角色:[角色\管理员\ SCHULUNGSPLANUNG,角色\超级\管理员]
工作流程/按摩师:
图标:“”
项目:
- {
路线:应用程序\u工作流\u Austehendemassnahmen\u索引,
标签:“Übersicht Massnahmen”,
}
- {
路线:应用程序\u工作流\u erzeugemassnahmen\u索引,
标签:“Fällige Massnahmen erstellen”,
角色:[角色超级管理员,角色管理员工作流],
}
角色:[角色\用户\工作流,角色\超级\管理员,角色\管理员\工作流]
工作流程/下车:
图标:“”
项目:
- {
路线:app\U工作流\U电子点火器索引,
标签:“Übersicht offboard”,
}
- {
路线:app_bewertungen_bewertungenuebersicht_索引,
标签:“Übersicht Bewertungen”,
}
角色:[角色\超级\管理员,角色\管理员\工作流]
工作流/Bewertungen:
图标:“”
项目:
- {
路线:app_bewertungen_bewertungenuebersicht_索引,
标签:“Übersicht Bewertungen”,
}
角色:[角色\u用户\u ZEUGNISSE]
工作流程/入职:
图标:“”
项目:
- {
路线:应用程序、工作流、电子点火器、车载设备,
标签:“Übersicht入职”,
}
- {
路由:应用程序加载向导加载向导索引,
标签:“入职向导”,
}
角色:[角色\超级\管理员,角色\管理员\工作流]
阻碍:
- {
位置:左,
类型:sonata.block.service.geburtstagsliste,
角色:[角色\个人,角色\超级\管理员],
}
- {
位置:左,
类型:sonata.block.service.workflowstatistik,
角色:[角色\管理\工作流,角色\超级\管理],
}
- {
位置:对,,
类型:奏鸣曲.block.service.vertragslist,
角色:[角色\个人,角色\超级\管理员],
}
- {
位置:对,,
类型:sonata.block.service.schulungsliste,
角色:[角色\个人,角色\超级\管理员],
}
- {
位置:对,,
类型:sonata.block.service.konsistencheck,
角色:[角色\个人,角色\超级\管理员],
}
- {
位置:左,
类型:sonata.block.service.jubilare,
角色:[角色\个人,角色\超级\管理员],
}

所以,我只是在这里猜测,原因是多行映射中的
{
}
。我不明白的是它曾经起过作用。。。(也许yaml解析器变得更严格了?)

无论如何,据我所知,如果映射被拆分为多行,语法定义似乎不需要
{
}

资料来源:

事实上,
{
在规范中紧跟着
-
的唯一地方是将映射写在一行中


所以,可能是这样。

这看起来像是yaml文件中的语法错误。可能是关闭
}
时出现缩进问题。你可能会发布配置文件,或者只是其中有问题的部分?我更改了帖子并添加了配置文件。干得好,Jakumi:你猜对了,这正是问题所在。下一个文件也有同样的问题,这就是为什么清空第一个文件会导致失败。老实说,我真的很想知道为什么两年来它一直是这样。问题解决了,谢谢!我这边的一个小提示是:在你的提示下,去掉大括号,只用连字符将其拆分成多行,这样我就可以升级到最新的Symfony版本。不幸的是,后来我的web应用程序不再工作了-我不得不将多行“`-name:Mark hr:65``更改为以下内容:`-{name:Mark,hr:65}``如果没有Symfony/Sonata,就无法从services.yml中找到任何已配置的管理服务。@MarkusK。听起来真的很好
---
# 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],
      }
-
  name: Mark McGwire
  hr:   65
  avg:  0.278
-
  name: Sammy Sosa
  hr:   63
  avg:  0.288