Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 55872fd8

Von Moritz Bunkus vor mehr als 10 Jahren hinzugefügt

  • ID 55872fd8048745f35fb1f5f48aae2bda20e324ca
  • Vorgänger 96717bed
  • Nachfolger 0a8ac1f3

SL::Request: Funktion zum Cachen von Objekten für Dauer des Requests

Unterschiede anzeigen:

SL/Request.pm
return 'html';
}
sub cache {
my ($self, $topic, $default) = @_;
$topic = '::' . (caller(0))[0] . "::$topic" unless $topic =~ m{^::};
$self->{_cache} //= {};
$self->{_cache}->{$topic} //= ($default // {});
return $self->{_cache}->{$topic};
}
sub _store_value {
my ($target, $key, $value) = @_;
my @tokens = split /((?:\[\+?\])?(?:\.)|(?:\[\+?\]))/, $key;
......
For more information about layouts, see L<SL::Layout::Dispatcher>.
=item C<cache $topic[, $default ]>
Caches an item for the duration of the request. C<$topic> must be an
index name referring to the thing to cache. It is used for retrieving
it later on. If C<$topic> doesn't start with C<::> then the caller's
package name is prepended to the topic. For example, if the a from
package C<SL::StuffedStuff> calls with topic = C<get_stuff> then the
actual key will be C<::SL::StuffedStuff::get_stuff>.
If no item exists in the cache for C<$topic> then it is created and
its initial value is set to C<$default>. If C<$default> is not given
(undefined) then a new, empty hash reference is created.
Returns the cached item.
=back
=head1 SPECIAL FUNCTIONS

Auch abrufbar als: Unified diff