Yukki::Web::Context - request-response context descriptor
# 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');
This describes information about a single request-repsonse to be handled by the server.
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.
This is the Yukki::Web::Request object representing the incoming request.
This is the Yukki::Web::Response object representing the response to send back to the client.
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.
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.
base_urlis 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.
REWRITEoption takes a slightly different approach to building the base URL. It looks at the
REQUEST_URIand compares that to the
PATH_INFOand finds the common components. For example:
this leads to a base URL of:
PATH_INFO is not a sub-path of
REQUEST_URI, this will fall back to the same solution as
This may be used to construct redirects or URLs for links and form actions.
These each contain an array of errors.
list_info methods are provided to return the values as a list.
add_info methods are provided to append new messages.
has_info methods are provided to tell you if there are any messages.
my $url = $ctx->rebase_url($path);
Given a relative URL, this returns an absolute URL using the "base_url".
Andrew Sterling Hanenkamp <email@example.com>
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.