Php jBBCode可选选项?

Php jBBCode可选选项?,php,bbcode,Php,Bbcode,我使用bb代码解析 我想扩展CodeDefinition类来编写自己的asHtml函数,如中的示例所示 Mytag(参见代码片段)可能有一个选项,也可能没有。如果没有人,我希望它成为默认值 但是我必须执行setUseOption()来告诉jBBCode我的标记是否需要选项。它只能是真的或假的 如果我将设置为true,则不带选项[/mytag]的[mytag]无法继续 如果我将设置为false,[mytag=value]选项[/mytag]将失败 有没有一种方法可以允许使用和不使用选项继续标记?即

我使用bb代码解析

我想扩展CodeDefinition类来编写自己的asHtml函数,如中的示例所示

Mytag(参见代码片段)可能有一个选项,也可能没有。如果没有人,我希望它成为默认值

但是我必须执行setUseOption()来告诉jBBCode我的标记是否需要选项。它只能是真的或假的

如果我将设置为true,则不带选项[/mytag]的
[mytag]无法继续

如果我将设置为false
[mytag=value]选项[/mytag]
将失败

有没有一种方法可以允许使用和不使用选项继续标记?即,使选项成为可选选项。 并为其设置默认值

我还没有在地图上找到这个

代码片段:

<?php

class MyTag extends JBBCode\CodeDefinition {

    public function __construct()
    {
        parent::__construct();
        $this->setTagName("mytag");
        $this->setUseOption(true);
    }
 ...

查看中默认url和img bbcodes的定义。这些参数通过两次定义bbcode来提供可选参数:

/* [url] link tag */
$builder = new CodeDefinitionBuilder('url', '<a href="{param}">{param}</a>');
$builder->setParseContent(false)->setBodyValidator($urlValidator);
array_push($this->definitions, $builder->build());

/* [url=http://example.com] link tag */
$builder = new CodeDefinitionBuilder('url', '<a href="{option}">{param}</a>');
$builder->setUseOption(true)->setParseContent(true)->setOptionValidator($urlValidator);
array_push($this->definitions, $builder->build());
/*[url]链接标签*/
$builder=新的CodeDefinitionBuilder('url','');
$builder->setParseContent(false)->setBodyValidator($urlValidator);
数组推送($this->definitions,$builder->build());
/*[url]=http://example.com]链接标签*/
$builder=新的CodeDefinitionBuilder('url','');
$builder->setUseOption(true)->setParseContent(true)->setOptionValidator($urlValidator);
数组推送($this->definitions,$builder->build());

然后,解析器负责将bbcode的实例与适当的定义进行匹配。

谢谢!这比我以前在解析之前预先添加默认选项要好得多。另外,在文档中看到这一点也很好(即,大约一个标签可以声明两次,有选项和没有选项)