Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #основной файл приложения
- has db => sub {
- my $self = shift;
- my $db_conf = $self->config('db');
- # можно любой dbi модуль, лучше Dbix::connector
- state $dbh = DBIx::Custom->connect(dsn => $db_conf->{dsn},
- user => $db_conf->{db_user},
- password => $db_conf->{db_pass},
- option => {mysql_enable_utf8 => 1},
- connector => 1);
- return $dbh;
- };
- sub startup {}
- ...
- # хэлпер, по идее лучше сразу вынести в модуль
- #будет примерно таким
- sub register {
- my ($plugin, $app) = @_;
- my $model = SimpleCRM::Model::CRM->new( dbh => $app->db,
- conf => $app->config);
- $app->helper( model => sub { $model } );
- $app->helper( dbh => sub { shift->app->db } );
- }
- package SimpleCRM::Model::CRM;
- use SimpleCRM::Model::CRM::User;
- ...
- # все модули для модели, в небольших проектах норм прописывать руками
- ...
- has user => sub {
- my $self = shift;
- SimpleCRM::Model::CRM::User->new(dbh => $self->dbh, conf => $self->conf)
- };
- # пример контроллера
- package SimpleCRM::Controller::Admin::User;
- use Mojo::Base 'Mojolicious::Controller';
- sub users {
- my $c = shift;
- my $users = $c->model->user->list_users();
- $c->render(json => {list => $users });
- }
- # пример модели
- package SimpleCRM::Model::CRM::User;
- use Mojo::Base -base;
- sub list_users
- {
- my ($self, $params) = @_;
- my $result = $self->dbh->select(table => 'sc_users');
- return $result->all;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement