NAME

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

VERSION

version 0.991_005

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".

list_errors

list_warnings

list_info

These methods return the list of errors, warnings, and info messages associated with the current flow.

add_errors

add_warnings

add_info

These methods add zero or more errors, warnings, and info messages to be associated with the current flow.

has_errors

has_warnings

has_info

These methods return a true value if there are any errors, warnings, or info messages associated with the current flow.

AUTHOR

Andrew Sterling Hanenkamp <hanenkamp@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2017 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.