GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
Mojolicious::Plugin::Config(3) User Contributed Perl Documentation Mojolicious::Plugin::Config(3)

Mojolicious::Plugin::Config - Perl-ish configuration plugin

  # myapp.conf (it's just Perl returning a hash)
  {
    # Just a value
    foo => "bar",

    # Nested data structures are fine too
    baz => ['♥'],

    # You have full access to the application
    music_dir => app->home->child('music')
  };

  # Mojolicious
  my $config = $app->plugin('Config');
  say $config->{foo};

  # Mojolicious::Lite
  my $config = plugin 'Config';
  say $config->{foo};

  # foo.html.ep
  %= config->{foo}

  # The configuration is available application-wide
  my $config = app->config;
  say $config->{foo};

  # Everything can be customized with options
  my $config = plugin Config => {file => '/etc/myapp.stuff'};

Mojolicious::Plugin::Config is a Perl-ish configuration plugin.

The application object can be accessed via $app or the "app" function, strict, warnings, utf8 and Perl 5.16 features are automatically enabled. A default configuration filename in the application home directory will be generated from the value of "moniker" in Mojolicious ("$moniker.conf"). You can extend the normal configuration file "$moniker.conf" with "mode" specific ones like "$moniker.$mode.conf", which will be detected automatically.

These configuration values are currently reserved:

"config_override"
If this configuration value has been set in "config" in Mojolicious when this plugin is loaded, it will not do anything besides loading deployment specific plugins.
"plugins"
  plugins => [{SetUserGroup => {user => 'sri', group => 'staff'}}]
    

One or more deployment specific plugins that should be loaded right after this plugin has been loaded.

The code of this plugin is a good example for learning to build new plugins, you're welcome to fork it.

See "PLUGINS" in Mojolicious::Plugins for a list of plugins that are available by default.

Mojolicious::Plugin::Config supports the following options.

  # Mojolicious::Lite
  plugin Config => {default => {foo => 'bar'}};

Default configuration, making configuration files optional.

  # Mojolicious::Lite
  plugin Config => {ext => 'stuff'};

File extension for generated configuration filenames, defaults to "conf".

  # Mojolicious::Lite
  plugin Config => {file => 'myapp.conf'};
  plugin Config => {file => '/etc/foo.stuff'};

Path to configuration file, absolute or relative to the application home directory, defaults to the value of the "MOJO_CONFIG" environment variable or "$moniker.conf" in the application home directory.

Mojolicious::Plugin::Config inherits all methods from Mojolicious::Plugin and implements the following new ones.

  $plugin->load($file, $conf, $app);

Loads configuration file and passes the content to "parse".

  sub load ($self, $file, $conf, $app) {
    ...
    return $self->parse($content, $file, $conf, $app);
  }

  $plugin->parse($content, $file, $conf, $app);

Parse configuration file.

  sub parse ($self, $content, $file, $conf, $app) {
    ...
    return $hash;
  }

  my $config = $plugin->register(Mojolicious->new);
  my $config = $plugin->register(Mojolicious->new, {file => '/etc/app.conf'});

Register plugin in Mojolicious application and merge configuration.

Mojolicious, Mojolicious::Guides, <https://mojolicious.org>.
2021-12-08 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.