Overview

Packages

  • None
  • SimplePie

Classes

  • SimplePie
  • SimplePie_Author
  • SimplePie_Autoloader
  • SimplePie_Cache
  • SimplePie_Cache_DB
  • SimplePie_Cache_File
  • SimplePie_Cache_Memcache
  • SimplePie_Cache_MySQL
  • SimplePie_Caption
  • SimplePie_Category
  • SimplePie_Content_Type_Sniffer
  • SimplePie_Copyright
  • SimplePie_Core
  • SimplePie_Credit
  • SimplePie_Decode_HTML_Entities
  • SimplePie_Enclosure
  • SimplePie_File
  • SimplePie_gzdecode
  • SimplePie_HTTP_Parser
  • SimplePie_IRI
  • SimplePie_Item
  • SimplePie_Locator
  • SimplePie_Misc
  • SimplePie_Net_IPv6
  • SimplePie_Parse_Date
  • SimplePie_Parser
  • SimplePie_Rating
  • SimplePie_Registry
  • SimplePie_Restriction
  • SimplePie_Sanitize
  • SimplePie_Source
  • SimplePie_XML_Declaration_Parser

Interfaces

  • SimplePie_Cache_Base
  • Overview
  • Package
  • Class
  • Tree
  • Deprecated
  • Todo
  1: <?php
  2: /**
  3:  * SimplePie
  4:  *
  5:  * A PHP-Based RSS and Atom Feed Framework.
  6:  * Takes the hard work out of managing a complete RSS/Atom solution.
  7:  *
  8:  * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
  9:  * All rights reserved.
 10:  *
 11:  * Redistribution and use in source and binary forms, with or without modification, are
 12:  * permitted provided that the following conditions are met:
 13:  *
 14:  *  * Redistributions of source code must retain the above copyright notice, this list of
 15:  *    conditions and the following disclaimer.
 16:  *
 17:  *  * Redistributions in binary form must reproduce the above copyright notice, this list
 18:  *    of conditions and the following disclaimer in the documentation and/or other materials
 19:  *    provided with the distribution.
 20:  *
 21:  *  * Neither the name of the SimplePie Team nor the names of its contributors may be used
 22:  *    to endorse or promote products derived from this software without specific prior
 23:  *    written permission.
 24:  *
 25:  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
 26:  * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
 27:  * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
 28:  * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 29:  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 30:  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 31:  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
 32:  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 33:  * POSSIBILITY OF SUCH DAMAGE.
 34:  *
 35:  * @package SimplePie
 36:  * @version 1.3-dev
 37:  * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
 38:  * @author Ryan Parman
 39:  * @author Geoffrey Sneddon
 40:  * @author Ryan McCue
 41:  * @link http://simplepie.org/ SimplePie
 42:  * @license http://www.opensource.org/licenses/bsd-license.php BSD License
 43:  */
 44: 
 45: /**
 46:  * Used to create cache objects
 47:  *
 48:  * This class can be overloaded with {@see SimplePie::set_cache_class()},
 49:  * although the preferred way is to create your own handler
 50:  * via {@see register()}
 51:  *
 52:  * @package SimplePie
 53:  */
 54: class SimplePie_Cache
 55: {
 56:     /**
 57:      * Cache handler classes
 58:      *
 59:      * These receive 3 parameters to their constructor, as documented in
 60:      * {@see register()}
 61:      * @var array
 62:      */
 63:     protected static $handlers = array(
 64:         'mysql' => 'SimplePie_Cache_MySQL',
 65:         'memcache' => 'SimplePie_Cache_Memcache',
 66:     );
 67: 
 68:     /**
 69:      * Don't call the constructor. Please.
 70:      */
 71:     private function __construct() { }
 72: 
 73:     /**
 74:      * Create a new SimplePie_Cache object
 75:      *
 76:      * @param string $location URL location (scheme is used to determine handler)
 77:      * @param string $filename Unique identifier for cache object
 78:      * @param string $extension 'spi' or 'spc'
 79:      * @return SimplePie_Cache_Base Type of object depends on scheme of `$location`
 80:      */
 81:     public static function create($location, $filename, $extension)
 82:     {
 83:         $type = explode(':', $location, 2);
 84:         $type = $type[0];
 85:         if (!empty(self::$handlers[$type]))
 86:         {
 87:             $class = self::$handlers[$type];
 88:             return new $class($location, $filename, $extension);
 89:         }
 90: 
 91:         return new SimplePie_Cache_File($location, $filename, $extension);
 92:     }
 93: 
 94:     /**
 95:      * Register a handler
 96:      *
 97:      * @param string $type DSN type to register for
 98:      * @param string $class Name of handler class. Must implement SimplePie_Cache_Base
 99:      */
100:     public static function register($type, $class)
101:     {
102:         self::$handlers[$type] = $class;
103:     }
104: 
105:     /**
106:      * Parse a URL into an array
107:      *
108:      * @param string $url
109:      * @return array
110:      */
111:     public static function parse_URL($url)
112:     {
113:         $params = parse_url($url);
114:         $params['extras'] = array();
115:         if (isset($params['query']))
116:         {
117:             parse_str($params['query'], $params['extras']);
118:         }
119:         return $params;
120:     }
121: }
122: 
SimplePie Documentation API documentation generated by ApiGen 2.4.0