• Publicidad

Recomendación, dispatchers, routes...

Todo lo relacionado con el desarrollo Web con Perl: desde CGI hasta Mojolicious

Recomendación, dispatchers, routes...

Notapor pinkfeet » 2013-07-25 09:59 @458

Hola,

este es mi primer mensaje, un saludo a todos los usuarios Perl del foro y enhorabuena por la web y el foro, están muy bien.

He escrito una pequeña aplicación web con CGI::Application y estoy bastante contento; llegado a este punto
quisiera que me recomendáseis qué usar para modificar las URL en mi aplicación cgi ya terminada. Acabo de ver
el plugin CGI::Application::Plugin::Routes en la propia web de http://www.cgi-app.org/ y también conozco, pero no usado, CGI::Application::Dispatch.

¿Cuál recomendáis? Si es que recomendáis su uso en una aplicación ya terminada.

Sólo eso, un saludo.
pinkfeet
Perlero nuevo
Perlero nuevo
 
Mensajes: 1
Registrado: 2013-07-09 08:59 @416

Publicidad

Re: Recomendación, dispatchers, routes...

Notapor explorer » 2013-07-25 11:38 @526

Bienvenido a los foros de Perl en Español, pinkfeet.

No conozco CGI::Application::Plugin::Routes. Solo he usado CGI::Application::Dispatch, y veo que es una forma cómoda de hacer el despacho de peticiones. Quizás el Routes tenga más posibilidades para rutas más complejas.

Este es un ejemplo con C:A:D. Se trata de un index.cgi, que carga nuestra CGI::Application, con el runmode correcto.
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. #
  3. # Joaquín Ferrero. 20110110
  4. #
  5.  
  6. #use CGI          qw(:html2 :html3 :html4 :form -newstyle_urls);
  7. #use CGI::Carp    qw(fatalsToBrowser);
  8. use CGI::Application::Dispatch;
  9.  
  10. #use FindBin;
  11. #use lib $FindBin::Bin;
  12.  
  13. # mod_rewrite alters the PATH_INFO by turning it into a file system path, so we repair it.
  14. # necesitamos esto para que las funciones url() nos den un resultado correcto
  15. $ENV{PATH_INFO} =~ s/^$ENV{DOCUMENT_ROOT}// if defined $ENV{PATH_INFO};
  16.  
  17. #my $query = new CGI;
  18. #$query->charset('UTF-8');
  19.  
  20. CGI::Application::Dispatch->dispatch(
  21. #    debug   => 1,
  22. #    prefix  => '',
  23.     table   => [
  24. #            'vip'              => { app => 'VayaDescuento', rm => 'vip'                },
  25.             'ficha/:n/:p?'      => { app => 'VayaDescuento', rm => 'ficha'              },
  26.             'categoria/:c/:p?'  => { app => 'VayaDescuento', rm => 'categoria'          },
  27.             'contenido/:c'      => { app => 'VayaDescuento', rm => 'contenido'          },
  28.             'impresion/:n'      => { app => 'VayaDescuento', rm => 'impresion'          },
  29.             'confirmacion/:n'   => { app => 'VayaDescuento', rm => 'confirmacion'       },
  30.             'nuevoregistro'     => { app => 'VayaDescuento', rm => 'nuevoregistro'      },
  31.             'login'             => { app => 'VayaDescuento', rm => 'login'              },
  32.             'logout'            => { app => 'VayaDescuento', rm => 'logout'             },
  33.             '/:p?'              => { app => 'VayaDescuento', rm => 'principal'          },
  34.     ],
  35. #    args_to_new => {
  36. #            QUERY => $query,
  37. #    },
  38. );
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
Hay partes que están comentadas, porque, se han descartado con la evolución de la aplicación. Por ejemplo, la creación del objeto $query se trasladó a la propia aplicación, en lugar de pasarlo a través del despacho.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Web

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado