Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Catalyst::Plugin::SmarUser(Contributed Perl DocumCatalyst::Plugin::SmartURI(3)

NAME
       Catalyst::Plugin::SmartURI - Configurable URIs for Catalyst

SYNOPSIS
       In your lib/MyApp.pm, load the plugin and your other plugins, for
       example:

	   use Catalyst	qw/
	       -Debug
	       ConfigLoader
	       Static::Simple
	       Session
	       Session::Store::Memcached
	       Session::State::Cookie
	       Authentication
	       Authorization::Roles
	       +CatalystX::SimpleLogin
	       SmartURI
	   /;

       In your .conf:

	   <Plugin::SmartURI>
	       disposition host-header	 # application-wide
	       uri_class   URI::SmartURI # by default
	   </Plugin::SmartURI>

       Per request:

	   $c->uri_disposition('absolute');

       Methods on URIs:

	   <a href="[% c.uri_for('/foo').relative %]" ...

DESCRIPTION
       Configure whether "$c->uri_for" and "$c->req->uri_with" return
       absolute, hostless or relative URIs, or URIs based on the 'Host'
       header. Also allows configuring which URI class to use. Works on
       application-wide	or per-request basis.

       This is useful in situations where you're for example, redirecting to a
       lighttpd	from a firewall	rule, instead of a real	proxy, and you want
       your links and redirects	to still work correctly.

       To use your own URI class, just subclass	URI::SmartURI and set
       "uri_class", or write a class that follows the same interface.

       This plugin installs a custom "$c->request_class", however it does so
       in a way	that won't break if you've already set "$c->request_class"
       yourself, ie. by	using Catalyst::Action::REST (thanks mst!).

       There is	a minor	performance penalty in perls older than	5.10, due to
       Class::C3, but only at initialization time.

METHODS
   $c->uri_for
   $c->req->uri_with
       Returns a "$c->uri_class" object	(URI::SmartURI by default) in the
       configured "$c->uri_disposition".

   $c->req->uri
       Returns a "$c->uri_class" object. If the	context	hasn't been prepared
       yet, uses the configured	value for "uri_class".

       "$c->req->uri->relative"	will be	relative to "$c->req->base".

   $c->req->referer
       Returns a "$c->uri_class" object	for the	referer	(or configured
       "uri_class" if there's no context) with reference set to	"$c->req->uri"
       if it comes from	"$c->req->base".

       In other	words, if referer is your app, you can do
       "$c->req->referer->relative" and	it will	do the right thing.

CONFIGURATION
       In myapp.conf:

	   <Plugin::SmartURI>
	       disposition absolute
	       uri_class   URI::SmartURI
	   </Plugin::SmartURI>

       disposition
	   One of 'absolute', 'hostless', 'relative' or	'host-header'.
	   Defaults to 'absolute'.

	   The special disposition 'host-header' uses the value	of your
	   'Host:' header.

       uri_class
	   The class to	use for	URIs, defaults to URI::SmartURI.

PER REQUEST
	   package MyAPP::Controller::RSSFeed;

	   ...

	   sub begin : Private {
	       my ($self, $c) =	@_;

	       $c->uri_class('Your::URI::Class::For::Request');
	       $c->uri_disposition('absolute');
	   }

       $c->uri_disposition('absolute'|'hostless'|'relative'|'host-header')
	   Set URI disposition to use for the duration of the request.

       $c->uri_class($class)
	   Set the URI class to	use for	"$c->uri_for" and "$c->req->uri_with"
	   for the duration of the request.

EXTENDING
       "$c->prepare_uri" actually creates the URI, which you can override.

SEE ALSO
       URI::SmartURI, Catalyst,	URI

AUTHOR
       Rafael Kitover, "<rkitover at cpan.org>"

BUGS
       Please report any bugs or feature requests to
       "bug-catalyst-plugin-smarturi at	rt.cpan.org", or through the web
       interface at
       <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Catalyst-Plugin-SmartURI>.
       I will be notified, and then you'll automatically be notified of
       progress	on your	bug as I make changes.

SUPPORT
       You can find documentation for this module with the perldoc command.

	   perldoc Catalyst::Plugin::SmartURI

       You can also look for information at:

       o   RT: CPAN's request tracker

	   <http://rt.cpan.org/NoAuth/Bugs.html?Dist=Catalyst-Plugin-SmartURI>

       o   AnnoCPAN: Annotated CPAN documentation

	   <http://annocpan.org/dist/Catalyst-Plugin-SmartURI>

       o   CPAN	Ratings

	   <http://cpanratings.perl.org/d/Catalyst-Plugin-SmartURI>

       o   Search CPAN

	   <http://search.cpan.org/dist/Catalyst-Plugin-SmartURI>

ACKNOWLEDGEMENTS
       from #catalyst:

       vipul came up with the idea

       mst came	up with	the design and implementation details for the current
       version

       kd reviewed my code and offered suggestions

TODO
       I'd like	to extend on Catalyst::Plugin::RequireSSL, and make a plugin
       that rewrites URIs for actions with an SSL attribute.

COPYRIGHT & LICENSE
       Copyright (c) 2008 Rafael Kitover

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

perl v5.32.0			  2015-10-04	 Catalyst::Plugin::SmartURI(3)

NAME | SYNOPSIS | DESCRIPTION | METHODS | CONFIGURATION | PER REQUEST | EXTENDING | SEE ALSO | AUTHOR | BUGS | SUPPORT | ACKNOWLEDGEMENTS | TODO | COPYRIGHT & LICENSE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Catalyst::Plugin::SmartURI&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help