YAML文件不能包含缩进作为缩进

edd*_*ark 28 php routing routes symfony

这是我第一次使用Symfony 2.我在这里尝试的只是当用户点击提交按钮时,他将转到另一个页面.

但我的索引页面没有加载.他们说我的路由文件有问题,具体来说:

YAML文件不能包含缩进作为缩进

我不知道我做错了什么.这是我的路由文件.

community_online_shop_homepage:
    pattern: /
    defaults: { _controller: CommunityOnlineShopBundle:Page:index }
_login:
    pattern: /login
    defaults: { _controller: CommunityOnlineShopBundle:Page:login}
Run Code Online (Sandbox Code Playgroud)

A.L*_*A.L 47

YAML文件使用空格作为缩进,您可以使用2或4个空格进行缩进,但不能使用制表符.换句话说,禁止使用制表符缩进:

为什么YAML会禁止标签?

标签已被取缔,因为不同的编辑和工具会对它们进行不同的处理.由于缩进对YAML的正确解释至关重要,因此这个问题太过棘手甚至无法尝试.事实上,Python的Guido van Rossum已经承认允许在Python源代码中使用TAB是许多人头痛的问题,而且他再次设计Python,他会禁止它们.

(来源:YAML常见问题解答(感谢Destiny Architect的链接))

例如,Symfony配置文件可以用2或4个空格作为缩进编写:

4个空格

doctrine:
    dbal:
        default_connection: default
Run Code Online (Sandbox Code Playgroud)

2个空格

doctrine:
  dbal:
    default_connection: default
Run Code Online (Sandbox Code Playgroud)

  • @DestinyArchitect这是一个谬论。错误的代码总是看起来很糟糕。制表符不是造成错误识别的原因。制表符看起来是可自定义的,使用更少的字节使它们比空格更好。每个关于空格的争论都可以揭穿。向我提供任何代码,我将仅使用标签为您提供格式精美的代码。 (13认同)
  • 答案是正确的,所以我投了赞成票,但论证很糟糕。仅当制表符和空格缩进混合在一个文件中时才会出现问题。这应该被禁止。否则,完全可以轻松地将仅制表符缩进文件中的所有制表符视为处理单空格缩进。真正的原因一定是无能或者个人喜好。后者根本不是问题,但不说只是可悲的。我很失望,尤其是因为我认为 YAML 在其他方面都很出色。 (12认同)
  • 仅对于无法正确使用标签的人来说,使用标签是令人头疼的事情。 (11认同)
  • 是时候添加各种空间迷缩进的示例了:1、3、6、8、<随便>。有些人就是无法理解最简单的抽象事物,例如制表符。 (11认同)
  • 这是guido的最大错误...他应该宣布太空凹痕为非法;) (6认同)
  • 吉多当时还很绿。选项卡不仅比缩进更易于管理,而且需要更少的击键来编码和导航,并减少文件大小/有效负载。 (6认同)
  • 那么解析器如何知道文件在每个缩进级别使用了两个还是四个空格?如果一个文件混合了两者怎么办?解析器将如何验证文件?如果遇到三个空格会发生什么? (4认同)
  • 不,我还没有使用YAML解析器。我想知道是否还有其他人知道,因为对空间的坚持似乎增加了歧义而不是减少了歧义。 (2认同)

che*_*aby 7

如果您使用EditorConfig,请确保将其添加到您的.editorconfig文件中

[*.yml]
indent_style = space
indent_size = 4
Run Code Online (Sandbox Code Playgroud)

您可以将indent_size更改为2,具体取决于您的喜好

  • 不,这是制表符缩进的一个论点:使用制表符,团队的每个成员都可以根据自己的喜好看到缩进,而使用制表符时,在同一代码库上工作的每个人都应该保持一致 (8认同)
  • 我想知道:既然“indent_size”是**用户**首选项,它是否应该包含在文件中? (2认同)