Mojolicious::Renderer-生成动态内容
使用Mojolicious::Renderer;my$renderer=Mojolicious::renderer->new;push@{$renderer->classes},“MyApp::Controller::Foo”;按@{$renderer->paths},'/home/sri/templates';
Mojolicious::渲染器是标准的吗Mojolicious公司渲染器。
请参见Mojolicious::辅助线::渲染了解更多信息。
Mojolicious::渲染器实现以下属性。
我的$cache=$renderer->缓存;$renderer=$renderer->cache(Mojo::cache->new);
渲染器缓存,默认为Mojo::缓存对象。
my$classes=$renderer->类;$renderer=$renderer->类(['main']);
用于查找模板的类数据
具有的节Mojo::加载程序,第一个具有最高优先级,默认为主要的
。只使用正好具有两个扩展名的文件,如索引.html.ep
。请注意,对于要检测的模板,这些类需要在之前加载并添加“预热”被调用,这通常在应用程序启动期间自动发生。
#在DATA部分添加另一个带有模板的类push@{$renderer->classes},“Mojolicious::Plugin::Fun”;#在DATA部分添加另一个具有模板且优先级更高的类unshift@{$renderer->classes},“Mojolicious::Plugin::MoreFun”;
my$bool=$renderer->压缩;$renderer=$renderer->压缩($bool);
尝试协商压缩动态生成的响应内容,并gzip公司
自动压缩,默认为true。
my$default=$renderer->default_format;$renderer=$renderer->default_format('html’);
要呈现的默认格式格式
未在存储中设置,默认为html格式
。请注意,将默认值更改为html格式
不建议使用,因为它可能会破坏,例如,带有捆绑模板的插件。
我的$default=$renderer->defaulthandler;$renderer=$renderer->default_handler('ep');
在自动检测不起作用的情况下,用于呈现的默认模板处理程序,如内联
模板。
my$encoding=$renderer->编码;$renderer=$renderer->编码('koi8-r');
如果设置,将对生成的内容进行编码,默认为UTF-8型
。请注意,许多渲染器,例如Mojolicous::插件::EPRender还可以使用此值确定模板文件在处理之前是否应该解码。
my$handlers=$renderer->handlers;$renderer=$renderer->处理程序({epl=>sub{…}});
注册的处理程序。
我的$helpers=$renderer->helpers;$renderer=$renderer->helpers({url_for=>sub{…}});
注册助手。
my$size=$renderer->min_compress_size;$renderer=$renderer->min_compress_size(1024);
如果启用,则使用压缩所需的最小输出大小(以字节为单位)默认为860
.
我的$paths=$renderer->路径;$renderer=$renderer->路径(['/home/sri/templates']);
要在其中查找模板的目录,第一个目录具有最高优先级。
#添加另一个“模板”目录推送@{$render->paths},'/home/sri/templates';#添加另一个具有更高优先级的“模板”目录取消移动@{$renderer->paths},'/home/sri/themes/blue/templates';
Mojolicious::渲染器从继承所有方法Mojo::基础并实现了以下新功能。
my$all=$renderer->接受(Mojolicious::Controller->new);my$best=$renderer->接受(Mojolicious::Controller->new,'html,'json');
为选择最佳可能的表示Mojolicuis::控制器对象来自格式
GET(获取)
/邮政
参数,格式
存储值,或接受
请求头,如果检测不到首选项,则默认返回第一个扩展名。
$renderer=$renderer->add_handler(epl=>sub{…});
注册处理程序。
$renderer->add_handler(foo=>sub($renderers,$c,$output,$options){...$$output=“你好,世界!”;});
$renderer=$renderer->add_helper(url_for=>sub{…});
注册助手。
$renderer->add_helper(foo=>sub($c,@args){...});
my$template=$renderer->getdata_template({template=>“foo/bar”,format=>“html”,handler=>“epl”});
返回a数据
节模板来自“类”对于具有的选项哈希引用模板
,格式
,变体
和处理程序
值,或未定义
如果找不到模板,通常由处理程序使用。
my$helper=$renderer->gethelper('url_for');
通过全名获取助手,为前缀动态生成助手,或返回未定义
如果找不到助手或前缀。生成的帮助程序返回一个代理对象,该对象包含当前控制器对象,并且可以在其中调用嵌套的帮助程序。
my($output,$format)=$renderer->render(Mojolicious::Controller->new);
通过其中一个渲染器渲染输出。请参见Mojolicus中的“render”::控制器以获得更人性化的界面。
my$bool=$renderer->response(Mojolicious::Controller->new,$output,$format);my$bool=$renderer->响应(Mojolicus::控制器->新建,$output,$format,$status);
完成动态生成的响应内容,并“压缩”如果可能的话。
my$name=$renderer->template_for(Mojolicious::Controller->new);
返回的默认模板名称Mojolicious::控制器对象,或未定义
如果无法生成名称。
my$handler=$renderer->template_handler({template=>“foo/bar”,format=>“html”});
带有的选项哈希引用的返回处理程序模板
,格式
和变体
值,或未定义
如果找不到处理程序。
my$template=$renderer->模板名称({template=>“foo/bar”,format=>“html”,handler=>“epl”});
使用返回选项哈希引用的模板名称模板
,格式
,变体
和处理程序
值,或未定义
如果找不到模板,通常由处理程序使用。
my$path=$renderer->模板路径({template=>“foo/bar”,format=>“html”,handler=>“epl”});
使用返回选项哈希引用的完整模板路径模板
,格式
,变体
和处理程序
值,或未定义
如果文件不存在于“路径”,通常由处理程序使用。
$renderer->预热;
准备模板“类”供将来使用。
Mojolicious公司,Mojolicious::指南,https://mojolicious.org.