[SP-pm] Conexão Catalyst com o Banco de dados Postgre

Eden Cardim edencardim at gmail.com
Thu Nov 11 08:02:49 PST 2010


>>>>> "Nelson" == Nelson Ferraz <nferraz em gmail.com> writes:
    Nelson> O que poderia ser mais simples?

Não que eu recomende esse tipo de arquitetura de aplicação mas, em
termos de expressividade, isso:

use strict;
use warnings;

sub html {{
index => q{
<form method="post" action="[% c.uri_for('/save') %]">
<input type="text" name="name">
<input type="submit">
</form>
},
save => q{
<h1>Done!</h1>
<a href="[%= c.uri_for('/') %]">Home</a>.
}}};

package MyApp::Schema;
use parent 'DBIx::Class::Schema::Loader';

package MyApp;
use Catalyst qw/-Engine=HTTP/;
use String::TT qw/tt/;
my $schema = MyApp::Schema->connect('dbi:SQLite:dbname=myapp.db');

sub index :Action {}
sub save :Local {
    $schema->resultset('MyTable')->create(pop->req->body_parameters);
}
sub end :Action {
    my($self, $c) = @_;
    $c->res->content_type('text/html');
    $c->res->body( tt ::html()->{$c->action->name} );
}
MyApp->setup;
MyApp->run(3000);

Com a funcionalidade completa, mais flexibilidade, mais opções de
escalabilidade/manutenção subsequentes, e com a garantia de que vai ser
sempre retrocompatível.
Se for dividir a aplicação corretamente, fica mais simples ainda com
CatalystX::Declare.

-- 
Eden Cardim
Software Engineer
+55 73 9986-3963
edencardim.com


More information about the SaoPaulo-pm mailing list