我很难为Mojolicious工作制作渲染插件。 我的插件看起来像这样(现在):
package Mojolicious::Plugin::Renderer::XML;
use Mojo::Base 'Mojolicious::Plugin';
sub register {
my ($self, $app, $conf) = @_;
$app->renderer->add_handler('xml' => sub {
${$_[2]} = 'say something';
return 1;
} );
}
1;
在我的应用程序中:
plugin 'Renderer::XML';
以后
get '/x/xml' => sub {
my $c = shift;
$c->render( xml => 'bar' );
};
我可以看到插件被注册(转储renderer->handlers
的列表,但看起来子甚至从未被调用(我插入调试输出来检查)。我尝试从应用程序内部做同样的事情如here所述,但没有结果。
有没有人比我有更好的线索?
答案 0 :(得分:0)
查看Mojolicious::Renderer中的render
子实施。您将看到已接受的数据类型是固定的。只有插件才能添加更多内容。
现在看看Mojolicious::Plugin::XML::Loy。他必须创建一个render_xml
助手。够好了!