Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Mojolicious::Plugin::CUsergContributed Perl DocuMojolicious::Plugin::Config(3)

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

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

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

	   # 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'};

DESCRIPTION
       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.

       If the configuration value "config_override" has	been set in "config"
       in Mojolicious when this	plugin is loaded, it will not do anything.

       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.

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

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

       Default configuration, making configuration files optional.

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

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

   file
	 # 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.

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

   load
	 $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);
	 }

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

       Parse configuration file.

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

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

       Register	plugin in Mojolicious application and merge configuration.

SEE ALSO
       Mojolicious, Mojolicious::Guides, <https://mojolicious.org>.

perl v5.32.0			  2020-08-10	Mojolicious::Plugin::Config(3)

NAME | SYNOPSIS | DESCRIPTION | OPTIONS | METHODS | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Mojolicious::Plugin::Config&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help