The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Mojolicious::Plugin::Module - Mojolicious Plugin.

OVERVIEW

Mojolicious::Plugin::Module is a Mojolicious plugin. This module helps to write more modular applications with Mojo.

After

  $app->plugin('Module');

Mojolicious looks for config/application.yaml where you can define (in YAML format) modules which should be used.

For example application.yaml contains

  ---
  modules:
    - Bugov::User
    - Bugov::CommonModule
  

Two modules will used. They should be located in module/bugov/user and module/bugov/common_module directories.

Structure of module

  assets                                  # Module's public files.
  config                                  # Some configs.
    module.yaml                           # Main config of this module.
  lib
    Vendor
      ModuleName
        ... controllers, helpers, etc ... # The same what you can do in Mojolicious App.
      ModuleName.pm                       # Should extends Mojolicious::Plugin::Module::Abstract.
  templates
    vendor
      module_name
        ... templates ...                 # Templates used in this module.

METHODS

add($name, $module)

$name - required parameter. Defines package of module. For example "Vendor::ModuleName".

$module - optional parameter. Module object which be finded as $name in module manager. If <$module> does not defined $name will be loaded.

get($name)

Get module by $name.

SEE ALSO

Mojolicious::Plugin::Module::Abstract, Mojolicious::Plugin::Module::Manager, Mojolicious::Plugin::Module::Assets, Mojolicious::Guides, http://mojolicio.us.

COPYRIGHT AND LICENSE

Copyright (C) 2014, Georgy Bazhukov.

This program is free software, you can redistribute it and/or modify it under the terms of the Artistic License version 2.0.