Mojolicious::Plugins

作者: JSON_NULL | 来源:发表于2017-10-14 17:48 被阅读15次

简介

use Mojolicious::Plugins;

my $plugins = Mojolicious::Plugins->new;
push @{$plugins->namespaces}, 'MyApp::Plugin';

Mojolicious::Plugins是Mojolicious的插件管理器。

可用插件

下面是已经包含在Mojolicious框架中一同发布的可用插件。

包名 提供的功能
Mojolicious::Plugin::Config 提供Perl-ish格式配置文件的加载和解析功能
Mojolicious::Plugin::DefaultHelpers 提供通用helper的检测和发现功能(自动加载)
Mojolicious::Plugin::EPLRenderer 提供简单的嵌入式Perl模板解析渲染的功能(自动加载)
Mojolicious::Plugin::EPRenderer 提供复杂的嵌入式Perl模板解析渲染的功能(自动加载)
Mojolicious::Plugin::HeaderCondition 提供多种头部路由条件解析功能(自动加载)
Mojolicious::Plugin::JSONConfig 提供json格式配置文件的加载和解析功能
Mojolicious::Plugin::Mount 提供安装完整Mojolicious应用程序的功能
Mojolicious::Plugin::PODRenderer 提供将POD文档转换成HTML的功能
Mojolicious::Plugin::TagHelpers 模板特定helper的集合(自动加载)

事件

Mojolicious::Plugins继承了Mojo::EventEmitter中的所有事件。

属性

Mojolicious::Plugins中仅实现了一个属性:namespaces。

my $namespaces = $plugins->namespaces;
$plugins       = $plugins->namespaces(['Mojolicious::Plugin']);

从哪个命名空间加载插件,默认值为:Mojolicious::Plugin。

方法

Mojolicious::Plugins继承了Mojo::EventEmitter中的所有方法,并实现以下方法。

emit_chain

$plugins->emit_chain('foo');
$plugins->emit_chain(foo => 123);

触发链式的hook事件。

emit_hook

$plugins = $plugins->emit_hook('foo');
$plugins = $plugins->emit_hook(foo => 123);

一次性触发所有hook事件(非链式)。

emit_hook_reverse

$plugins = $plugins->emit_hook_reverse('foo');
$plugins = $plugins->emit_hook_reverse(foo => 123);

以相反的顺序一次性触发所有hook事件(非链式)。

load_plugin

my $plugin = $plugins->load_plugin('some_thing');
my $plugin = $plugins->load_plugin('SomeThing');
my $plugin = $plugins->load_plugin('MyApp::Plugin::SomeThing');

从匹配的命名空间或使用完全限定名加载插件。

register_plugin

$plugins->register_plugin('some_thing', Mojolicious->new);
$plugins->register_plugin('some_thing', Mojolicious->new, foo => 23);
$plugins->register_plugin('some_thing', Mojolicious->new, {foo => 23});
$plugins->register_plugin('SomeThing', Mojolicious->new);
$plugins->register_plugin('SomeThing', Mojolicious->new, foo => 23);
$plugins->register_plugin('SomeThing', Mojolicious->new, {foo => 23});
$plugins->register_plugin('MyApp::Plugin::SomeThing', Mojolicious->new);
$plugins->register_plugin('MyApp::Plugin::SomeThing', Mojolicious->new, foo => 23);
$plugins->register_plugin('MyApp::Plugin::SomeThing', Mojolicious->new, {foo => 23});

从匹配的命名空间或使用完全限定名加载插件,并运行插件的register方法。此方法第二个及以后的参数会顺序传递给register方法。

a

相关文章

  • Mojolicious::Plugins

    简介 Mojolicious::Plugins是Mojolicious的插件管理器。 可用插件 下面是已经包含在M...

  • Mojolicious::Routes::Pattern

    简介 Mojolicious::Routes::Pattern是Mojolicious::Routes的核心。 属...

  • Mojolicious::Routes::Route

    简介 Mojolicious::Routes::Route是Mojolicious::Routes使用的路由窗口。...

  • Mojolicious::Plugin::SessionStor

    简介 Mojolicious::Plugin::SesionStore是一个Mojolicious的session...

  • Mojolicious::Routes

    简介 Mojolicious::Routes是Mojolicious Web框架的核心。 属性 Mojolicio...

  • Mojolicious::Renderer

    简介 Mojolicious::Renderer是标准的Mojolicious渲染器。 属性 Mojoliciou...

  • Mojolicious::Plugin

    简介 Mojolicious::Plugin是Mojolicious中所有插件的抽象基类。请参阅Mojolicio...

  • Mojolicious::Sessions

    简介 Mojolicious::Sessions是一个基于签名Cookie的会话管理器。 Mojolicious:...

  • Mojolicious::Command

    简介 Mojolicious::Command 是Mojolicious中所有命令的抽象基类。 属性 app 当前...

  • Mojo::Types

    简介 Mojolicious::Types管理着Mojolicious中的所有MIME类型。 下面的代码段列出了常...

网友评论

    本文标题:Mojolicious::Plugins

    本文链接:https://www.haomeiwen.com/subject/lgwxuxtx.html