【问题标题】:Symfony update fails with YAML errorsSymfony 更新失败并出现 YAML 错误
【发布时间】:2020-01-25 09:05:15
【问题描述】:

我有一个 Web 应用程序当前在 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").                           
!!                                                                                 

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

这个“sonata_admin.yaml”文件以前可以完美运行。我使用“yamllint”检查文件,并没有发现任何错误。我将文件上传到在线 YAML 检查,他们没有发现任何问题。

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

我使用 PHP 7.3 和最新的作曲家。 有什么想法吗?

这里是配置文件:

---
# 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],
      }

【问题讨论】:

  • 您的 yaml 文件中似乎存在语法错误。可能是关闭 } 的缩进问题。您可能会发布该配置文件或只是其中有问题的部分?
  • 我更改了帖子并添加了配置文件。

标签: php symfony yaml


【解决方案1】:

所以,我只是在这里猜测,原因是您的多线映射中的{}。我没有得到的是它曾经工作过......(也许 yaml-parser 变得更严格了?)

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

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

来源:2.1 Collections / Example 2.4, Sequence of Mappings

事实上,在规范中{ 跟在- 后面的唯一地方是映射写在一行中。

太好了,也许是这个。

【讨论】:

  • 干得好,Jakumi:你猜对了,这正是问题所在。下一个文件有同样的问题,这就是为什么清空第一个文件仍然导致失败。我真的很想知道为什么它从 2 年以来就一直这样工作,是 hiones.honest。问题已解决,谢谢!
  • 我这边的一个小提示:您提示删除花括号并将其拆分为多行,仅用连字符允许我升级到最新的 Symfony 版本。不幸的是,我的网络应用程序后来不再工作 - 我不得不将多行 ``` - name: Mark hr: 65 ``` 更改为以下内容:``` - {name:Mark,hr:65} `` 没有Symfony/Sonata 没有从 services.yml 中找到任何已配置的管理服务。
  • @MarkusK。听起来确实很奇怪。老实说,我不知道为什么会发生这种情况。 ;o/
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-24
  • 2019-07-29
  • 2013-09-17
  • 2015-05-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多