[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/lib/simplepie/library/SimplePie/Cache/ -> File.php (source)

   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.1
  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   * Caches data to the filesystem
  47   *
  48   * @package SimplePie
  49   * @subpackage Caching
  50   */
  51  class SimplePie_Cache_File implements SimplePie_Cache_Base
  52  {
  53      /**
  54       * Location string
  55       *
  56       * @see SimplePie::$cache_location
  57       * @var string
  58       */
  59      protected $location;
  60  
  61      /**
  62       * Filename
  63       *
  64       * @var string
  65       */
  66      protected $filename;
  67  
  68      /**
  69       * File extension
  70       *
  71       * @var string
  72       */
  73      protected $extension;
  74  
  75      /**
  76       * File path
  77       *
  78       * @var string
  79       */
  80      protected $name;
  81  
  82      /**
  83       * Create a new cache object
  84       *
  85       * @param string $location Location string (from SimplePie::$cache_location)
  86       * @param string $name Unique ID for the cache
  87       * @param string $type Either TYPE_FEED for SimplePie data, or TYPE_IMAGE for image data
  88       */
  89  	public function __construct($location, $name, $type)
  90      {
  91          $this->location = $location;
  92          $this->filename = $name;
  93          $this->extension = $type;
  94          $this->name = "$this->location/$this->filename.$this->extension";
  95      }
  96  
  97      /**
  98       * Save data to the cache
  99       *
 100       * @param array|SimplePie $data Data to store in the cache. If passed a SimplePie object, only cache the $data property
 101       * @return bool Successfulness
 102       */
 103  	public function save($data)
 104      {
 105          if (file_exists($this->name) && is_writeable($this->name) || file_exists($this->location) && is_writeable($this->location))
 106          {
 107              if ($data instanceof SimplePie)
 108              {
 109                  $data = $data->data;
 110              }
 111  
 112              $data = serialize($data);
 113              return (bool) file_put_contents($this->name, $data);
 114          }
 115          return false;
 116      }
 117  
 118      /**
 119       * Retrieve the data saved to the cache
 120       *
 121       * @return array Data for SimplePie::$data
 122       */
 123  	public function load()
 124      {
 125          if (file_exists($this->name) && is_readable($this->name))
 126          {
 127              return unserialize(file_get_contents($this->name));
 128          }
 129          return false;
 130      }
 131  
 132      /**
 133       * Retrieve the last modified time for the cache
 134       *
 135       * @return int Timestamp
 136       */
 137  	public function mtime()
 138      {
 139          if (file_exists($this->name))
 140          {
 141              return filemtime($this->name);
 142          }
 143          return false;
 144      }
 145  
 146      /**
 147       * Set the last modified time to the current time
 148       *
 149       * @return bool Success status
 150       */
 151  	public function touch()
 152      {
 153          if (file_exists($this->name))
 154          {
 155              return touch($this->name);
 156          }
 157          return false;
 158      }
 159  
 160      /**
 161       * Remove the cache
 162       *
 163       * @return bool Success status
 164       */
 165  	public function unlink()
 166      {
 167          if (file_exists($this->name))
 168          {
 169              return unlink($this->name);
 170          }
 171          return false;
 172      }
 173  }


Generated: Thu Aug 11 10:00:09 2016 Cross-referenced by PHPXref 0.7.1