Mojolicious-Plugin-CGI

 view release on metacpan or  search on metacpan

README  view on Meta::CPAN


    It is critical that "script_name" and "path_info" is present in stash.
    If the values are extracted directly from the path or set manually does
    not matter.

    Note that the helper is registered in all of the examples.

  Running code refs
      plugin CGI => {
        route => "/some/path",
        run   => sub {
          my $cgi = CGI->new;
          # ...
        }
      };

    Instead of calling a script, you can run a code block when accessing the
    route. This is (pretty much) safe, even if the code block modifies
    global state, since it runs in a separate fork/process.

  Support for semicolon in query string
      plugin CGI => {
        support_semicolon_in_query_string => 1,
        ...
      };

    The code above need to be added before other plugins or handler which
    use "url" in Mojo::Message::Request. It will inject a "before_dispatch"
    hook which saves the original QUERY_STRING, before it is split on "&" in
    Mojo::Parameters.

ATTRIBUTES
  env
    Holds a hash ref containing the environment variables that should be
    used when starting the CGI script. Defaults to %ENV when this module was
    loaded.

    This plugin will create a set of environment variables depenendent on
    the request passed in which is according to the CGI spec. In addition to
    "env", these dynamic variables are set:

      CONTENT_LENGTH, CONTENT_TYPE, HTTPS, PATH, PATH_INFO, QUERY_STRING,
      REMOTE_ADDR, REMOTE_HOST, REMOTE_PORT, REMOTE_USER, REQUEST_METHOD,
      SCRIPT_NAME, SERVER_PORT, SERVER_PROTOCOL.

    Additional static variables:

      GATEWAY_INTERFACE = "CGI/1.1"
      SERVER_ADMIN = $ENV{USER}
      SCRIPT_FILENAME = Script name given as argument to register.
      SERVER_NAME = Sys::Hostname::hostname()
      SERVER_SOFTWARE = "Mojolicious::Plugin::CGI"

    Plus all headers are exposed. Examples:

      .----------------------------------------.
      | Header          | Variable             |
      |-----------------|----------------------|
      | Referer         | HTTP_REFERER         |
      | User-Agent      | HTTP_USER_AGENT      |
      | X-Forwarded-For | HTTP_X_FORWARDED_FOR |
      '----------------------------------------'

  register
      $self->register($app, [ $route => $script ]);
      $self->register($app, %args);
      $self->register($app, \%args);

    "route" and path need to exist as keys in %args unless given as plain
    arguments.

    $route can be either a plain path or a route object.

COPYRIGHT AND LICENSE
    Copyright (C) 2014, Jan Henning Thorsen

    This program is free software, you can redistribute it and/or modify it
    under the terms of the Artistic License version 2.0.

AUTHOR
    Jan Henning Thorsen - "jhthorsen@cpan.org"



( run in 0.453 second using v1.01-cache-2.11-cpan-ceb78f64989 )