我非常喜欢使用Mojolicious :: Lite的事实我在这样的文件中概述了路径。
get '/foo/#bar' => sub {
my $c = shift;
...;
};
get '/baz/#foo' => sub {
my $c = shift;
...;
};
然而,在某些情况下,文件中的子元素会变得太长而且复杂,并且我希望将它们分开,同时仍然保持Lite方法。
最好的方法是什么?是通过创建一个完整的Mojolicious应用程序中的控制器,还是应该在单独的模块中创建帮助程序,并use
它们?
我无法在文档中找到指向此内容的指示。
答案 0 :(得分:1)
点击类似的东西,并假设您想要保留Mojolicious::Lite
- 简单的解决方案是外包'子程序到包/模块中,然后use
。
您不需要做任何特别特别的事情 - Mojolicious::Lite
您需要'帮助者'这基本上是指定子程序的一种方式。
您可以跳过它,并创建一个单独的模块,该模块只包含您导入的子例程。
E.g。
#!/usr/bin/env perl
use strict;
use warnings;
package ExtraStuff;
sub generate_a_value {
return 4; # generated by random dice roll, so guaranteed to be fair and random
}
1;
然后在你的Mojolicious应用中只有use
。
非常适合' config'也是类型的东西,特别是如果你重复使用它。
我不建议将其用于直接HTML生成 - Mojolicious已经为您处理,可能更好 - 但仅仅是外包'无论如何,你可能正在通过助手做的事情。
答案 1 :(得分:0)
当您解压缩精简应用时,您最终会在YourApp.pm
子... like in the guide中的startup
中定义路线。由于你仍然可以通过传递给$r->get...
和朋友来发送代码引用,你不会因为远离光线而失去任何东西。
完整的布局确实鼓励使用控制器,但你真的不必这样做。