我正在尝试在 NetBeans (7.3) 中将代码模板功能与 PHP 一起使用,但我发现它相当有限。给定以下所需的输出:
public function addFoo(Foo $foo) {
$this->fooCollection[] = $foo;
}
我试图让“ foo
”/“ Foo
”的每个实例都是可变的;所以我使用了一个变量:
public function add${name}(${name} $$${name}) {
$this->${name}Collection[] = $$${name};
}
当然,扩展时没有考虑到所需的大小写规则,因为我找不到实现它的方法;结果是(假设我填充${name}
了“ Foo
”):
public function addFoo(Foo $Foo) { // note the uppercase "Foo" in the argument
$this->FooCollection[] = $Foo; // and collection property names...
} // not what I had in mind
现在,我读到 NetBeans 在它的模板中支持FreeMarker,但这似乎只适用于文件模板而不是像这样的片段模板。
据我所知,FreeMarker 版本如下所示;但是,它不起作用,${name?capitalize}
只是被视为另一个变量名。
public function add${name?capitalize}(${name?capitalize} $$${name}) {
$this->${name}Collection[] = $$${name};
}
传递“ foo
”,允许大写为类型名称、第二个单词等修复它。
有什么方法可以在这里获得 FreeMarker 支持,或者其他方法?
我真的愿意接受任何建议;包括第三方插件。我只是不想放弃 NetBeans。
附录
给出的例子是微不足道的;一个明显的解决方案是:
public function add${upperName}(${upperName} $$${lowerName}) {
$this->${lowerName}Collection[] = $$${lowerName};
}
其中上/下分别是“ Foo
”/“ foo
”。然而,这只是一个例子,我正在寻找更强大的东西(比如 FreeMarker 支持)