构建一个Mojolicious Lite应用程序

时间:2015-07-17 06:27:20

标签: perl mojolicious

我非常喜欢使用Mojolicious :: Lite的事实我在这样的文件中概述了路径。

get '/foo/#bar' => sub {
     my $c = shift;
     ...;
};

get '/baz/#foo' => sub {
     my $c = shift;
     ...;
};

然而,在某些情况下,文件中的子元素会变得太长而且复杂,并且我希望将它们分开,同时仍然保持Lite方法。

最好的方法是什么?是通过创建一个完整的Mojolicious应用程序中的控制器,还是应该在单独的模块中创建帮助程序,并use它们?

我无法在文档中找到指向此内容的指示。

2 个答案:

答案 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...和朋友来发送代码引用,你不会因为远离光线而失去任何东西。

完整的布局确实鼓励使用控制器,但你真的不必这样做。