The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Yukki::Web::Context - request-response context descriptor

VERSION

version 0.140290

SYNOPSIS

  # Many components are handed a Context in $ctx...
  
  my $request = $ctx->request;
  my $session = $ctx->session;
  my $session_options = $ctx->session_options;
  my $response = $ctx->response;
  my $stash = $ctx->stash;

  $ctx->add_errors('bad stuff');
  $ctx->add_warnings('not so good stuff');
  $ctx->add_info('some stuff');

DESCRIPTION

This describes information about a single request-repsonse to be handled by the server.

ATTRIBUTES

env

This is the PSGI environment. Do not use directly. This will probably be renamed to make it more difficult to use directly in the future.

request

This is the Yukki::Web::Request object representing the incoming request.

response

This is the Yukki::Web::Response object representing the response to send back to the client.

stash

This is a temporary stash of information. Use of this should be avoided when possible. Global state like this (even if it only lasts for one request) should only be used as a last resort.

base_url

This is a URI describing the base path to get to this Yukki wiki site. It is configured from the "base_url" in Yukki::Web::Settings setting. The value of the setting will determine how this value is calculated or may set it explicitly.

  • SCRIPT_NAME. When base_url is set to SCRIPT_NAME, then the full path to the script name will be used as the base URL. This is the default and, generally, the safest option.

  • REWRITE. The REWRITE option takes a slightly different approach to building the base URL. It looks at the REQUEST_URI and compares that to the PATH_INFO and finds the common components. For example:

      PATH_INFO=/page/view/main
      REQUEST_URI=/yukki-site/page/view/main

    this leads to a base URL of:

      /yukki-site

    If PATH_INFO is not a sub-path of REQUEST_URI, this will fall back to the same solution as SCRIPT_NAME above.

  • Anything else will be considered an absolute URL and used as the base URL.

This may be used to construct redirects or URLs for links and form actions.

errors

warnings

info

These each contain an array of errors.

The list_errors, list_warnings, and list_info methods are provided to return the values as a list.

The add_errors, add_warnings, and add_info methods are provided to append new messages.

The has_errors, has_warnings, and has_info methods are provided to tell you if there are any messages.

METHODS

rebase_url

  my $url = $ctx->rebase_url($path);

Given a relative URL, this returns an absolute URL using the "base_url".

AUTHOR

Andrew Sterling Hanenkamp <hanenkamp@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2014 by Qubling Software LLC.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.