Package Home

Zend Framework 2 Documentation (Manual)

PHK Home

File: /_sources/modules/zend.cache.pattern.class-cache.txt

Size:5376
Storage flags:no_autoload,compress/gzip (22%)

.. _zend.cache.pattern.class-cache:

Zend\\Cache\\Pattern\\ClassCache
================================

.. _zend.cache.pattern.class-cache.overview:

Overview
--------

The ``ClassCache`` pattern is an extension to the ``CallbackCache`` pattern.
It has the same methods but instead it generates the internally used callback in base of
the configured class name and the given method name.

.. _zend.cache.pattern.class-cache.quick-start:

Quick Start
-----------

Instantiating the class cache pattern

.. code-block:: php
   :linenos:

   use Zend\Cache\PatternFactory;

   $classCache = PatternFactory::factory('class', array(
       'class'   => 'MyClass',
       'storage' => 'apc'
   ));

.. _zend.cache.pattern.class-cache.options:

Configuration Options
---------------------

+------------------------+-------------------------------------------------------------+--------------+-----------------------------------------------------------------+
|Option                  |Data Type                                                    |Default Value |Description                                                      |
+========================+=============================================================+==============+=================================================================+
|storage                 |``string`` ``array`` ``Zend\Cache\Storage\StorageInterface`` |<none>        |The storage to write/read cached data                            |
+------------------------+-------------------------------------------------------------+--------------+-----------------------------------------------------------------+
|class                   |``string``                                                   |<none>        |The class name                                                   |
+------------------------+-------------------------------------------------------------+--------------+-----------------------------------------------------------------+
|cache_output            |``boolean``                                                  |``true``      |Cache output of callback                                         |
+------------------------+-------------------------------------------------------------+--------------+-----------------------------------------------------------------+
|cache_by_default        |``boolean``                                                  |``true``      |Cache method calls by default                                    |
+------------------------+-------------------------------------------------------------+--------------+-----------------------------------------------------------------+
|class_cache_methods     |``array``                                                    |``[]``        |List of methods to cache (If ``cache_by_default`` is disabled)   |
+------------------------+-------------------------------------------------------------+--------------+-----------------------------------------------------------------+
|class_non_cache_methods |``array``                                                    |``[]``        |List of methods to no-cache (If ``cache_by_default`` is enabled) |
+------------------------+-------------------------------------------------------------+--------------+-----------------------------------------------------------------+

.. _zend.cache.pattern.class-cache.methods:

Available Methods
-----------------

.. function:: call(string $method, array $args = array())
   :noindex:

    Call the specified method of the configured class.

   :rtype: mixed

.. function:: __call(string $method, array $args)
   :noindex:

    Call the specified method of the configured class.

   :rtype: mixed

.. function:: __set(string $name, mixed $value)
   :noindex:

    Set a static property of the configured class.

   :rtype: void

.. function:: __get(string $name)
   :noindex:

    Get a static property of the configured class.

   :rtype: mixed

.. function:: __isset(string $name)
   :noindex:

    Checks if a static property of the configured class exists.

   :rtype: boolean

.. function:: __unset(string $name)
   :noindex:

    Unset a static property of the configured class.

   :rtype: void

.. function:: generateKey(string $method, array $args = array())
   :noindex:

   Generate a unique key in base of a key representing the callback part
   and a key representing the arguments part.

   :rtype: string

.. function:: setOptions(Zend\\Cache\\Pattern\\PatternOptions $options)
   :noindex:

   Set pattern options.

   :rtype: Zend\\Cache\\Pattern\\ClassCache

.. function:: getOptions()
   :noindex:

   Get all pattern options.

   :rtype: Zend\\Cache\\Pattern\\PatternOptions

.. _zend.cache.pattern.pattern-factory.examples:

Examples
--------

.. _zend.cache.pattern.class-cache.examples.cached-feed-reader:

.. rubric:: Caching of import feeds

.. code-block:: php
   :linenos:

   $cachedFeedReader = Zend\Cache\PatternFactory::factory('class', array(
       'class'   => 'Zend\Feed\Reader\Reader',
       'storage' => 'apc',
       
       // The feed reader doesn't output anything
       // so the output don't need to be caught and cached
       'cache_output' => false,
   ));

   $feed = $cachedFeedReader->call("import", array('http://www.planet-php.net/rdf/'));
   // OR
   $feed = $cachedFeedReader->import('http://www.planet-php.net/rdf/');

For more information about the PHK package format: http://phk.tekwire.net