[SP-pm] Controller thin, model fat ! Como fazê-lo ?
Solli Honorio
shonorio at gmail.com
Tue Jun 19 17:42:36 PDT 2012
Wallace,
Eu não consegui entender este Data::Manger. Não entendi como utilizar este
cara verificar os inputs, ao invés de ficar fazer 'if'. O cara parece ser
interessante, mas eu fiquei boiando.
Solli Honorio
2012/6/8 Wallace Reis <wallace em reis.me>
> On Jun 08, 2012, at 10:29 AM, Eden Cardim wrote:
> > [corte]
> > E o seu lean controller ficaria mais ou menos assim:
> >
> > sub my_action :Local {
> > my($self, $c) = @_;
> > $c->model('MyBizClass')
> > ->handle($c->req->upload('file')->fh, $c->model('DB')->dbh,
> $c->user->email);
> > }
>
>
> Para validação de dados, tenho usado o Data::Verifier[1] atráves do
> Data::Manager[2] e este através do CatalystX::Controller::Verifier[3]. O
> Data::Verifier permite realizar isto com apoio do sistema de tipos do
> Moose[4] e com algumas extensões para validações mais complexas como no seu
> caso em que você precisa verificar que é um arquivo de imagem.
>
> Assim, o controller ficaria algo como (YMMV):
>
> __PACKAGE__->config(
> verifiers => {
> my_action => {
> profile => {
> image_file => {
> required => 1,
> type => 'FileHandle',
> post_check => sub {
> isa_image_file(shift->get_value('image_file')) }
> },
> },
> },
> },
> );
>
> sub my_action :Local {
> my($self, $c) = @_;
> my $results = $self->verify($c);
> $c->model('MyBizClass')
> ->handle($results->get_value('image_file'), $c->model('DB')->dbh,
> $c->user->email);
> }
>
> [1] https://metacpan.org/module/Data::Verifier
> [2] https://metacpan.org/module/Data::Manager
> [3] https://metacpan.org/module/CatalystX::Controller::Verifier
> [4] https://metacpan.org/module/Moose::Util::TypeConstraints
>
> --
> Wallace Reis | wreis
> wallace em reis.me
> http://www.about.me/wallacereis
>
> =begin disclaimer
> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
> SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>
>
--
"o animal satisfeito dorme". - Guimarães Rosa
-------------- Pr?xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20120619/88031fd8/attachment.html>
More information about the SaoPaulo-pm
mailing list