Доброго всем
¡ ¡ ¡ ALL GLORY TO GLORIA ! ! !
0.08071
Mojolicious::Che - Мой базовый модуль для приложений Mojolicious. Нужен только развернутый конфиг.
# app.pl use lib 'lib'; use Mojo::Base 'Mojolicious::Che'; __PACKAGE__->new(config => 'lib/Config.pm')->start();
Порядок строк в этом конфиге соответствует исполнению в модуле!
{ 'Проект'=>'Тест-проект', # mojo => { # defaults => # secrets => # mode=> # log => {level=>...} # static => {paths => [...]}, # renderer => {paths => [...], classes => [...], }, # session => # has => # plugins=> # hooks => # }, # Default values for "stash" in Mojolicious::Controller, assigned for every new request. mojo_defaults => {layout=>'default',}, # 'шифры' => [ mojo_secrets => ['true 123 my app',], mojo_mode=> 'development', mojo_log=>{level => 'error'}, mojo_static_paths => ["static"], mojo_renderer_classes => ["Mojolicious::Foo::Fun"], # 'сессия' => mojo_session => {cookie_name => 'EXX', default_expiration => 86400}, # 'хазы' => 'Лет 500-700 назад был такой дикий степной торговый жадный народ ХАЗАРЫ. Столицей их "государства" был город Тьмутаракань, где-то на берегу моря Каспия. Потомки этих людей рассыпаны по странам России, Средней Азии, Европы. Есть мнение, что хазары присвоили себе название ЕВРЕИ, но это не те библейские кроткие евреи, а жадные потомки кроманьонцев' mojo_has => { foo => sub {my $app = shift; return 'is a bar';}, }, # 'базы' => # will be as has! dbh=>{ 'main' => { # DBI->connect(dsn, user, passwd, $attrs) connect => ["DBI:Pg:dbname=test;", "postgres", undef, { ShowErrorStatement => 1, AutoCommit => 1, RaiseError => 1, PrintError => 1, pg_enable_utf8 => 1, #mysql_enable_utf8 => 1, #mysql_auto_reconnect=>1, }], # or use Foo::Dbh; external defined dbh # dbh => Dbh->dbh, # will do on connect do => ['set datestyle to "ISO, DMY";',], # prepared sth will be as has $app->sth->{<dbh name>}{<sth name>} sth => { foo => <<SQL, select * from foo where bar = ?; SQL }, } }, # 'запросы' => # prepared sth will be as has $app->sth->{<dbh name>}{<sth name>} sth => { main => { now => "select now();" }, }, # 'плугины'=> [ mojo_plugins=>[ ['Foo::Bar'], [Foo::Bar::Plugin => opt1 => ..., opt2 => ...], ['Foo::Plugin' => sub {<...returns config data list...>}], ], # 'хуки' => mojo_hooks=>{ #~ before_dispatch => sub {1;}, }, # 'спейсы' => namespaces => ['Space::Shattle'], # 'маршруты' => routes => [ [get=>'/', to=> {cb=>sub{shift->render(format=>'txt', text=>'Hello friend!');},}], ] #~ 'задачи'=> {#first enable plugin Minion jobs => { slow_log => sub { my ($job, $msg) = @_; sleep 5; $job->app->log->error(qq{slow_log "$msg"}); }, }, };
Mojolicious::Che inherits all attributes from Mojolicious and implements the following new ones.
Set DBI handlers from config dbh (или базы)
my $dbh = $app->dbh->{main};
Set prepared stattements from config sth (или запросы).
my $sth = $app->sth->{main}{foo};
Mojolicious::Che inherits all methods from Mojolicious and implements the following new ones.
Session object config apply
Apply the has's. UTF names allow.
Apply the plugins
Apply the hooks
Apply the namespases
Apply the routes
#~ 'маршруты' => [ 'routes'=>[ [get=>'/', to=> {cb=>sub{shift->render(format=>'txt', text=>'Welcome!');},}], ],
Apply the jobs
#~ 'задачи'=> {#first enable plugin Minion 'jobs'=> { # or tasks slow_log => sub { my ($job, $msg) = @_; sleep 5; $job->app->log->error(qq{slow_log "$msg"}); }, },
Mojolicious
Ado
Михаил Че (Mikhail Che), <mche[-at-]cpan.org>
<mche[-at-]cpan.org>
Please report any bugs or feature requests at https://github.com/mche/Mojolicious-Che/issues. Pull requests also welcome.
Copyright 2016+ Mikhail Che.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Mojolicious::Che, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Mojolicious::Che
CPAN shell
perl -MCPAN -e shell install Mojolicious::Che
For more information on module installation, please visit the detailed CPAN module installation guide.