释文语法
系统使用doctrine/annotations释文库去解析该语法,此语法很全面,但在drupal中只使用到了很简单的一部分:
以@开始,前只能是空格或者*,不能为其他字符,后接释文对象类名,释文元数据将传递给该类产生一个实例,可以是短类名,也可以是全限定名字空间类名,后接一个括号,里面是键值对。
键值对应该以插件id开始
根级别的键名可以使用双引号,子级别的键名必须使用双引号
不能使用单引号
键值的有效数据类型为:
Strings:字符串型,必须使用双引号,如果内容本来就有双引号,那么使用多一个双引号转义:如”The “”On”” value”
Numbers:数字型,不能用双引号,如果使用则被当做字符串值
Booleans:布尔类型,不能用双引号,如果使用则被当做字符串值
Lists: 列表类型,使用花括号,如:
base = {
"node",
"foo",
}
注意foo后面的逗号,它不是写错了,如果有其他元素放在列表后面,它用来帮助避免语法错误
Maps:映射,用花括号,使用等号分割键和值,如:
edit = {
"editor" = "direct",
}
可以使用常量
键值可以使用@开始一个新释文对象,@前需要有空格,如:
/**
* EntityReference style plugin.
*
* @ingroup views_style_plugins
*
* @ViewsStyle(
* id = "entity_reference",
* title = @Translation("Entity Reference list"),
* help = @Translation("Returns results as a PHP array of labels and rendered rows."),
* theme = "views_view_unformatted",
* register_theme = FALSE,
* display_types = {"entity_reference"}
* )
*/
这就是释文嵌套,就是释文里面还可以包含释文,被嵌套的释文会被转换成释文对象,然后作为键值传递给外层释文对象做参数
如果键值对只有一个id,那么可以进行简写,如:@FormElement(“date”)