Mojolicious é um framework Perl robusto para desenvolvimento web, que simplfiica a construção e configuração de aplicações. A configuração do Mojolicious é central para o comportamento da aplicação e suas definições em tempo de execução. Este artigo explora a localização, estrtuura e aplicação dos arquivos de configuração, com exemplos de código modificados para ilustrar a implementação.
Visão Geral da Configuração
O arquivo de configuração do Mojolicious é um script Perl que define parâmetros e ajustes para a aplicação. Ele é carregado durante a inicialização da aplicação e permite personalização extensiva.
Localização do Arquivo de Configuração
Em uma aplicação gerada com o comando mojo generate app MeuApp, o arquivo de configuração geralmente reside no diretório MeuApp/script, com o nome meu_app.pl.
Estrutura do Arquivo de Configuração
O arquivo de configuração é um script Perl que utiliza a classe Mojo::Server para definir as configurações da aplicação.
#!/usr/bin/env perl
use strict;
use warnings;
use Mojolicious::Commands;
my $nome_classe = 'MeuApp';
Mojolicious::Commands->run($nome_classe);
Configurações Básicas
No arquivo de configuração, é possível definir o modo da aplicação, um hash de configurações e o tratamento de logs.
# Definir o modo da aplicação
$app->mode('desenvolvimento');
# Configurar parâmetros em um hash
$app->config(
hypnotoad => {
listen => ['http://*:3000'],
},
);
# Estabelecer o caminho do log
$app->log->path('/var/log/meu_app.log');
Definição de Rotas
Embora rotas sejam frequentemente definidas em controladores, elas também podem ser configuradas diretamente no arquivo de configuração usando o método routes.
# Configurar uma rota no arquivo de configuração
$app->routes->get('/inicio')->to('exemplo#bem_vindo');
Carregamento de Plugins e Middlewares
O arquivo de configuração permite carregar plugins e adicionar middlewares para estender a funcionalidade da aplicação.
# Carregar um plugin
$app->plugin('TagHelpers');
# Inserir um middleware
$app->hook(before_dispatch => sub {
meu $controlador = shift;
$controlador->res->headers->header('X-Powered-By' => 'Mojolicious');
});
Variáveis de Ambiente e Argumentos de Linha de Comando
Mojolicious suporta a sobrescrita de configurações via variáveis de ambiente e argumentos de linha de comando.
MOJO_MODE=producao ./meu_app.pl daemon
Configurações Avançadas
O sistema de configuração do Mojolicious é altamente flexível, permitindo configurações condicionais e dinâmicas.
# Exemplo de configuração condicional
if ($app->mode eq 'producao') {
$app->config(
hypnotoad => {
listen => ['https://*:3000'],
proxy => 1,
},
);
}
Ordem de Carregamento
Mojolicious segue uma ordem específica para carregar configurações, incluindo argumentos de linha de comano, variáveis de ambiente, arquivo de configuração e configurações padrão.