MVC && ORM на perl
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
- ProFTP
- подполковник
- Сообщения: 3388
- Зарегистрирован: 2008-04-13 1:50:04
- Откуда: %&й
- Контактная информация:
MVC && ORM на perl
сабж
MVC (model view controller) http://search.cpan.org/~mramberg/Cataly ... atalyst.pm
ORM (object-relational mapper) объектный реляционный картопостроитель http://search.cpan.org/~akimov/ORM-0.85/lib/ORM.pod
не могу понять в каких случаях нужно испольовать ORM, и где реально оно надо, и зачем он, хотя там написано, но все равно не понятно это просто так чтоли, чтобы были объекты? я сам ООП редко когда использую свое... еще нашел Catalyst, он помощнее чем другие, хочу попробовать, это штука строит структуру сайта...
MVC (model view controller) http://search.cpan.org/~mramberg/Cataly ... atalyst.pm
ORM (object-relational mapper) объектный реляционный картопостроитель http://search.cpan.org/~akimov/ORM-0.85/lib/ORM.pod
не могу понять в каких случаях нужно испольовать ORM, и где реально оно надо, и зачем он, хотя там написано, но все равно не понятно это просто так чтоли, чтобы были объекты? я сам ООП редко когда использую свое... еще нашел Catalyst, он помощнее чем другие, хочу попробовать, это штука строит структуру сайта...
Последний раз редактировалось ProFTP 2009-01-18 21:31:56, всего редактировалось 1 раз.
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
- ProFTP
- подполковник
- Сообщения: 3388
- Зарегистрирован: 2008-04-13 1:50:04
- Откуда: %&й
- Контактная информация:
Re: MVC && ORM
подскажите, реально ли спасате такая асбтрацкия для БД при больших запросов?
http://search.cpan.org/~ash/DBIx-Class-0.08010/
http://search.cpan.org/~ash/DBIx-Class- ... oining.pod
то есть если нужно вывести данные абслютно по разному, в принципе, одинаково... if elsif else
ну если, допустим, нужно вывести для каждого пользователя по разному... в зависимости от настроек...
(я просто не могу понять все возможности этого, ORM, по этому спрашиваю... но рекомендуют именно это)
как это еще можно написать в асбстракции?
will produce a query something like:
вроде бы одинаково?
http://search.cpan.org/~ash/DBIx-Class-0.08010/
http://search.cpan.org/~ash/DBIx-Class- ... oining.pod
то есть если нужно вывести данные абслютно по разному, в принципе, одинаково... if elsif else
ну если, допустим, нужно вывести для каждого пользователя по разному... в зависимости от настроек...
(я просто не могу понять все возможности этого, ORM, по этому спрашиваю... но рекомендуют именно это)
как это еще можно написать в асбстракции?
Код: Выделить всё
if ($s ==1) {push @clausers "User = $s";
if ($s ==2) {push @clausers "User = $s";}
if ($s) {push @clausers "User = $s";}
if ($s) {push @clausers "User = $s";}
if ($s) {push @clausers "User = $s";}
} esle {
if ($s) {push @clausers "User = $s";}
}
$clause = join (" AND ", @clauses );
$sth = $dbh->prepare(SELECT * FROM table WHERE $clause );
Код: Выделить всё
my $cheapfredbooks = $schema->resultset('Author')->find({
Name => 'Fred',
})->books->search_related('prices', {
Price => { '<=' => '5.00' },
});
Код: Выделить всё
SELECT * FROM Author me
LEFT JOIN Books books ON books.author = me.id
LEFT JOIN Prices prices ON prices.book = books.id
WHERE prices.Price <= 5.00
- hizel
- дядя поня
- Сообщения: 9032
- Зарегистрирован: 2007-06-29 10:05:02
- Откуда: Выборг
Re: MVC && ORM
вывод к Модели не относится, логику вывода решает Представление(View)
что касается ORM то ты получаешь универсальное обращение ко всем СУБД поддерживаемым данным ORM
и SQL пейсать нинада
что касается ORM то ты получаешь универсальное обращение ко всем СУБД поддерживаемым данным ORM
и SQL пейсать нинада
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.
- ProFTP
- подполковник
- Сообщения: 3388
- Зарегистрирован: 2008-04-13 1:50:04
- Откуда: %&й
- Контактная информация:
Re: MVC && ORM
ну пыжык и mysql похожи сильно, там подправить не много надо, и сообще-то можно саму базу "перелить" рекурсивно, и есть еще полноценный модуль
http://dzhariy.habrahabr.ru/blog/42400/
который переводит с разных БД, SQlite,PostgreSQl,MySQl точно!
то есть, при построенни запросов, эффективность где-то 5% от этого и всё?

или что такое View, где оно?
http://dzhariy.habrahabr.ru/blog/42400/
который переводит с разных БД, SQlite,PostgreSQl,MySQl точно!
то есть, при построенни запросов, эффективность где-то 5% от этого и всё?


не понял, ты имеешь ввиду внедрить это в свой движок?hizel писал(а):вывод к Модели не относится, логику вывода решает Представление(View)
или что такое View, где оно?
- ProFTP
- подполковник
- Сообщения: 3388
- Зарегистрирован: 2008-04-13 1:50:04
- Откуда: %&й
- Контактная информация:
Re: MVC && ORM
подскжаите кто-то ли в Catalyst не использвать ORM, а DBI?
в документации везде идет про ORM, но мне он не нравится
в документации везде идет про ORM, но мне он не нравится
- hizel
- дядя поня
- Сообщения: 9032
- Зарегистрирован: 2007-06-29 10:05:02
- Откуда: Выборг
Re: MVC && ORM
Catalyst как следует из документации может использовать всё что угодно
примеры там на ORM который сваяли сами Каталистовцы
примеры там на ORM который сваяли сами Каталистовцы
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.
- ProFTP
- подполковник
- Сообщения: 3388
- Зарегистрирован: 2008-04-13 1:50:04
- Откуда: %&й
- Контактная информация:
Re: MVC && ORM на perl
нашел Catalyst::Model::DBI и Catalyst::Model::DBI::SQL::Library
но вообще-то такое ООП можно сделать самому классами, правда по поводу тестирование будет сложно протестировать правильность
но вообще-то такое ООП можно сделать самому классами, правда по поводу тестирование будет сложно протестировать правильность
- ProFTP
- подполковник
- Сообщения: 3388
- Зарегистрирован: 2008-04-13 1:50:04
- Откуда: %&й
- Контактная информация:
Re: MVC && ORM на perl
аномалия какая-то
есть код, это файл login.pm
ошибка
почему "login" из param идет в шаблон? шаблон ругается на то что откуда-то взляся login
шаблон работатет, тестовые страницы работают
есть код, это файл login.pm
Код: Выделить всё
sub index :Path :Args(0) {
my ( $self, $c ) = @_;
# Get the username and password from form
my $username = $c->request->params->{username} || "";
my $password = $c->request->params->{password} || "";
# If the username and password values were found in form
if ($username && $password) {
# Attempt to log the user in
if ($c->authenticate({ username => $username,
password => $password } )) {
# If successful, then let them use the application
$c->response->redirect($c->uri_for('/database'));
return;
} else {
# Set an error message
$c->stash->{template} = '/home/data/www/MyApp/root/login.tt';
$c->stash->{error_msg} = "Bad username or password.";
}
}
# If either of above don't work out, send to the login page
}
Код: Выделить всё
Caught exception in MyApp::View::HTML::Template->process "HTML::Template->new() : Cannot open included file login :
file not found. at /usr/local/lib/perl5/site_perl/5.8.8/HTML/Template.pm line 1658
HTML::Template::_init_template('HTML::Template=HASH(0x9af7d10)') called at /usr/local/lib/perl5/site_perl/5.8.8/HTML/Template.pm line 1238
HTML::Template::_init('HTML::Template=HASH(0x9af7d10)') called at /usr/local/lib/perl5/site_perl/5.8.8/HTML/Template.pm line 1124
HTML::Template::new('HTML::Template', 'filename', 'login', 'path', 'ARRAY(0x9a9ed6c)', 'die_on_bad_params', 0, 'cache', 1, ...)
called at /usr/local/lib/perl5/site_perl/5.8.8/Catalyst/View/HTML/Template.pm line 96
Catalyst::View::HTML::Template::render('MyApp::View::HTML::Template=HASH(0x9799994)', 'MyApp=HASH(0x9b1e488)', 'login') called
at /usr/local/lib/perl5/site_perl/5.8.8/Catalyst/View/HTML/Template.pm line 59
почему "login" из param идет в шаблон? шаблон ругается на то что откуда-то взляся login
шаблон работатет, тестовые страницы работают