Webylon 3.1 API Docs
  • Package
  • Class
  • Tree
  • Deprecated
  • Download
Version: current
  • 3.2
  • 3.1

Packages

  • auth
  • Booking
  • cart
    • shipping
    • steppedcheckout
  • Catalog
  • cms
    • assets
    • batchaction
    • batchactions
    • bulkloading
    • comments
    • content
    • core
    • export
    • newsletter
    • publishers
    • reports
    • security
    • tasks
  • Dashboard
  • DataObjectManager
  • event
  • faq
  • forms
    • actions
    • core
    • fields-basic
    • fields-dataless
    • fields-datetime
    • fields-files
    • fields-formatted
    • fields-formattedinput
    • fields-relational
    • fields-structural
    • transformations
    • validators
  • googlesitemaps
  • guestbook
  • installer
  • newsletter
  • None
  • photo
    • gallery
  • PHP
  • polls
  • recaptcha
  • sapphire
    • api
    • bulkloading
    • control
    • core
    • cron
    • dev
    • email
    • fields-formattedinput
    • filesystem
    • formatters
    • forms
    • i18n
    • integration
    • misc
    • model
    • parsers
    • search
    • security
    • tasks
    • testing
    • tools
    • validation
    • view
    • widgets
  • seo
    • open
      • graph
  • sfDateTimePlugin
  • spamprotection
  • stealth
    • captha
  • subsites
  • userform
    • pagetypes
  • userforms
  • webylon
  • widgets

Classes

  • Aggregate
  • Aggregate_Relationship
  • AssetAdminQuotaExtension
  • AttachedFilesExtension
  • BookingWidget
  • CheckoutPageExchangeExtension
  • ClassInfo
  • ControllerRedirectExtension
  • CSSContentParser
  • DisableJSValidation
  • Extension
  • HtmlEditorQuotaExtension
  • ManifestBuilder
  • MobileExtension
  • Object
  • PaymentMethodAutoHide
  • ProductSearchFormExtension
  • SS_Cache
  • TokenisedRegularExpression
  • ValidationResult
  • YamlFixture

Functions

  • __autoload
  • _t
  • array_fill_keys
  • getClassFile
  • getSysTempDir
  • getTempFolder
  • increase_memory_limit_to
  • increase_time_limit_to
  • project
  • singleton
  • stripslashes_recursively
  • translate_memstring

Class SS_Cache

SS_Cache provides a bunch of static functions wrapping the Zend_Cache system in something a little more easy to use with the SilverStripe config system.

A Zend_Cache has both a frontend (determines how to get the value to cache, and how to serialize it for storage) and a backend (handles the actual storage).

Rather than require library code to specify the backend directly, cache consumers provide a name for the cache backend they want. The end developer can then specify which backend to use for each name in their project's _config.php. They can also use 'all' to provide a backend for all named caches

End developers provide a set of named backends, then pick the specific backend for each named cache. There is a default File cache set up as the 'default' named backend, which is assigned to 'all' named caches

USING A CACHE

$cache = SS_Cache::factory('foo') ; // foo is any name (try to be specific), and is used to get configuration & storage info

if (!($result = $cache->load($cachekey))) { $result = caluate some how; $cache->save($result); }

return $result;

Normally there's no need to remove things from the cache - the cache backends clear out entries based on age & maximum allocated storage. If you include the version of the object in the cache key, even object changes don't need any invalidation

DISABLING CACHING IN DEV MOVE

(in _config.php)

if (Director::isDev()) SS_Cache::set_cache_lifetime('any', -1, 100);

USING MEMCACHED AS STORE

(in _config.php)

SS_Cache::add_backend('primary_memcached', 'Memcached', array('host' => 'localhost', 'port' => 11211, 'persistent' => true, 'weight' => 1, 'timeout' => 5, 'retry_interval' => 15, 'status' => true, 'failure_callback' => '' ) );

SS_Cache::pick_backend('primary_memcached', 'any', 10); SS_Cache::pick_backend('default', 'aggregate', 20); // Aggregate needs a backend with tag support, which memcached doesn't provide

USING APC AND FILE AS TWO LEVEL STORE

(in _config.php)

SS_Cache::add_backend('two-level', 'TwoLevels' array( 'slow_backend' => 'File', 'fast_backend' => 'Apc', 'slow_backend_options' => array('cache_dir' => TEMP_FOLDER . DIRECTORY_SEPARATOR . 'cache') ));

SS_Cache::pick_backend('two-level', 'any', 10); // No need for special backend for aggregate - TwoLevels with a File slow backend supports tags

Package: sapphire\core
Author: hfried
Located at sapphire/cache/Cache.php

Methods summary

protected static
# init( )

Initialize the 'default' named cache backend

Initialize the 'default' named cache backend

public static none
# add_backend( string $name, string $type, array $options = array() )

Add a new named cache backend

Add a new named cache backend

Parameters

$name
string $name The name of this backend as a freeform string
$type
string $type The Zend_Cache backend ('File' or 'Sqlite' or ...)
$options
array $options The Zend_Cache backend options (see http://framework.zend.com/manual/en/zend.cache.html)

Returns

none
none
public static none
# pick_backend( string $name, string $for, integer $priority = 1 )

Pick a named cache backend for a particular named cache

Pick a named cache backend for a particular named cache

Parameters

$name
string $name The name of the backend, as passed as the first argument to add_backend
$for
string $for The name of the cache to pick this backend for (or 'any' for any backend)
$priority
integer $priority The priority of this pick - the call with the highest number will be the actual backend picked. A backend picked for a specific cache name will always be used instead of 'any' if it exists, no matter the priority.

Returns

none
none
public static
# set_cache_lifetime( string $for, integer $lifetime = 600, integer $priority = 1 )

Set the cache lifetime for a particular named cache

Set the cache lifetime for a particular named cache

Parameters

$for
string $for The name of the cache to set this lifetime for (or 'any' for all backends)
$lifetime
integer $lifetime The lifetime of an item of the cache, in seconds, or -1 to disable caching
$priority
integer $priority The priority. The highest priority setting is used. Unlike backends, 'any' is not special in terms of priority.
public static The
# factory( string $for, string $frontend = 'Output', array $frontendOptions = null )

Build a cache object

Build a cache object

Parameters

$for
string $for The name of the cache to build the cache object for
$frontend
string $frontend (optional) The type of Zend_Cache frontend to use. Output is almost always the best
$frontendOptions
array $frontendOptions (optional) Any frontend options to use.

Returns

The
cache object. It has been partitioned so that actions on the object won't affect cache objects generated with a different $for value, even those using the same Zend_Backend -- Cache a calculation if (!($result = $cache->load($cachekey))) { $result = caluate some how; $cache->save($result); } return $result; -- Cache captured output if (!($cache->start($cachekey))) { // output everything as usual echo 'Hello world! '; echo 'This is cached ('.time().') '; $cache->end(); // output buffering ends } -- Invalidate an element $cache->remove($cachekey); -- Clear the cache (warning - this clears the entire backend, not just this named cache partition) $cache->clean(Zend_Cache::CLEANING_MODE_ALL); See the Zend_Cache documentation at http://framework.zend.com/manual/en/zend.cache.html for more

Magic methods summary

Properties summary

protected static array $backends
#
protected static array $backend_picks
#
protected static array $cache_lifetime
#
[Raise a SilverStripe Framework issue/bug](https://github.com/silverstripe/silverstripe-framework/issues/new)
- [Raise a SilverStripe CMS issue/bug](https://github.com/silverstripe/silverstripe-cms/issues/new)
- Please use the Silverstripe Forums to ask development related questions. -
Webylon 3.1 API Docs API documentation generated by ApiGen 2.8.0