构建 Mojolicious Lite 应用程序
Structuring a Mojolicious Lite app
我真的很喜欢 Mojolicious::Lite 我在一个文件中对路线进行了概述。
get '/foo/#bar' => sub {
my $c = shift;
...;
};
get '/baz/#foo' => sub {
my $c = shift;
...;
};
然而,在某些情况下,文件中的 sub 变得太长和复杂,我想将它们分开,同时仍然保持 Lite 方法。
最好的方法是什么?是像在完整的 Mojolicious 应用程序中那样创建控制器,还是应该在单独的模块中创建助手,然后 use
它们?
我在文档中找不到指向它的指针。
遇到类似的问题,假设您想要保留 Mojolicious::Lite
- 简单的解决方案是将 'outsource' 子程序放入 packages/modules,然后 use
.
虽然您不需要做任何特别的事情 - 对于 Mojolicious::Lite
,您需要 'helpers',这基本上是一种指定子例程的方式。
您可以跳过它,创建一个单独的模块,只定义您导入的子例程。
例如
#!/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;
然后 use
在您的 Mojolicious 应用程序中。
对于 'config' 类型的内容也能很好地工作,尤其是当您重复使用它时。
我不建议直接 HTML 生成 - Mojolicious 已经为你处理了,而且可能更好 - 但只是 'outsourcing' 你可能通过助手做的事情.
当您解压缩精简版应用程序时,您最终会在 YourApp.pm
、startup
子... like in the guide 中定义路由。由于您仍然可以通过 $r->get...
和朋友传递给代码参考,因此您不会因为远离光线而失去任何东西。
完整布局确实鼓励使用控制器,但您实际上不必那样做。
我真的很喜欢 Mojolicious::Lite 我在一个文件中对路线进行了概述。
get '/foo/#bar' => sub {
my $c = shift;
...;
};
get '/baz/#foo' => sub {
my $c = shift;
...;
};
然而,在某些情况下,文件中的 sub 变得太长和复杂,我想将它们分开,同时仍然保持 Lite 方法。
最好的方法是什么?是像在完整的 Mojolicious 应用程序中那样创建控制器,还是应该在单独的模块中创建助手,然后 use
它们?
我在文档中找不到指向它的指针。
遇到类似的问题,假设您想要保留 Mojolicious::Lite
- 简单的解决方案是将 'outsource' 子程序放入 packages/modules,然后 use
.
虽然您不需要做任何特别的事情 - 对于 Mojolicious::Lite
,您需要 'helpers',这基本上是一种指定子例程的方式。
您可以跳过它,创建一个单独的模块,只定义您导入的子例程。
例如
#!/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;
然后 use
在您的 Mojolicious 应用程序中。
对于 'config' 类型的内容也能很好地工作,尤其是当您重复使用它时。
我不建议直接 HTML 生成 - Mojolicious 已经为你处理了,而且可能更好 - 但只是 'outsourcing' 你可能通过助手做的事情.
当您解压缩精简版应用程序时,您最终会在 YourApp.pm
、startup
子... like in the guide 中定义路由。由于您仍然可以通过 $r->get...
和朋友传递给代码参考,因此您不会因为远离光线而失去任何东西。
完整布局确实鼓励使用控制器,但您实际上不必那样做。