Differences Between: [Versions 310 and 311] [Versions 311 and 401] [Versions 311 and 402] [Versions 311 and 403] [Versions 39 and 311]
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-2016, Ryan Parman, Sam 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 * @copyright 2004-2016 Ryan Parman, Sam Sneddon, Ryan McCue 37 * @author Ryan Parman 38 * @author Sam Sneddon 39 * @author Ryan McCue 40 * @link http://simplepie.org/ SimplePie 41 * @license http://www.opensource.org/licenses/bsd-license.php BSD License 42 */ 43 44 /** 45 * Used to create cache objects 46 * 47 * This class can be overloaded with {@see SimplePie::set_cache_class()}, 48 * although the preferred way is to create your own handler 49 * via {@see register()} 50 * 51 * @package SimplePie 52 * @subpackage Caching 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 'memcached' => 'SimplePie_Cache_Memcached', 67 'redis' => 'SimplePie_Cache_Redis' 68 ); 69 70 /** 71 * Don't call the constructor. Please. 72 */ 73 private function __construct() { } 74 75 /** 76 * Create a new SimplePie_Cache object 77 * 78 * @param string $location URL location (scheme is used to determine handler) 79 * @param string $filename Unique identifier for cache object 80 * @param string $extension 'spi' or 'spc' 81 * @return SimplePie_Cache_Base Type of object depends on scheme of `$location` 82 */ 83 public static function get_handler($location, $filename, $extension) 84 { 85 $type = explode(':', $location, 2); 86 $type = $type[0]; 87 if (!empty(self::$handlers[$type])) 88 { 89 $class = self::$handlers[$type]; 90 return new $class($location, $filename, $extension); 91 } 92 93 return new SimplePie_Cache_File($location, $filename, $extension); 94 } 95 96 /** 97 * Create a new SimplePie_Cache object 98 * 99 * @deprecated Use {@see get_handler} instead 100 */ 101 public function create($location, $filename, $extension) 102 { 103 trigger_error('Cache::create() has been replaced with Cache::get_handler(). Switch to the registry system to use this.', E_USER_DEPRECATED); 104 return self::get_handler($location, $filename, $extension); 105 } 106 107 /** 108 * Register a handler 109 * 110 * @param string $type DSN type to register for 111 * @param string $class Name of handler class. Must implement SimplePie_Cache_Base 112 */ 113 public static function register($type, $class) 114 { 115 self::$handlers[$type] = $class; 116 } 117 118 /** 119 * Parse a URL into an array 120 * 121 * @param string $url 122 * @return array 123 */ 124 public static function parse_URL($url) 125 { 126 $params = parse_url($url); 127 $params['extras'] = array(); 128 if (isset($params['query'])) 129 { 130 parse_str($params['query'], $params['extras']); 131 } 132 return $params; 133 } 134 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body