]> git.mxchange.org Git - friendica.git/blobdiff - library/Smarty/demo/plugins/cacheresource.mysql.php
Merge pull request #1123 from fabrixxm/mail_notification_cleanup
[friendica.git] / library / Smarty / demo / plugins / cacheresource.mysql.php
index ab8c475164fd5393c35d4a8831e7c15713246bca..d8d00ab261b94c84bdced7c66a0faea090815763 100644 (file)
@@ -2,10 +2,8 @@
 
 /**
  * MySQL CacheResource
- *
  * CacheResource Implementation based on the Custom API to use
  * MySQL as the storage resource for Smarty's output caching.
- *
  * Table definition:
  * <pre>CREATE TABLE IF NOT EXISTS `output_cache` (
  *   `id` CHAR(40) NOT NULL COMMENT 'sha1 hash',
  * ) ENGINE = InnoDB;</pre>
  *
  * @package CacheResource-examples
- * @author Rodney Rehm
+ * @author  Rodney Rehm
  */
-class Smarty_CacheResource_Mysql extends Smarty_CacheResource_Custom {
+class Smarty_CacheResource_Mysql extends Smarty_CacheResource_Custom
+{
     // PDO instance
     protected $db;
     protected $fetch;
     protected $fetchTimestamp;
     protected $save;
-    
-    public function __construct() {
+
+    public function __construct()
+    {
         try {
-            $this->db = new PDO("mysql:dbname=test;host=127.0.0.1", "smarty", "smarty");
-        } catch (PDOException $e) {
+            $this->db = new PDO("mysql:dbname=test;host=127.0.0.1", "smarty");
+        }
+        catch (PDOException $e) {
             throw new SmartyException('Mysql Resource failed: ' . $e->getMessage());
         }
         $this->fetch = $this->db->prepare('SELECT modified, content FROM output_cache WHERE id = :id');
@@ -46,19 +47,20 @@ class Smarty_CacheResource_Mysql extends Smarty_CacheResource_Custom {
     /**
      * fetch cached content and its modification time from data source
      *
-     * @param string $id unique cache content identifier
-     * @param string $name template name
-     * @param string $cache_id cache id
-     * @param string $compile_id compile id
-     * @param string $content cached content
-     * @param integer $mtime cache modification timestamp (epoch)
+     * @param  string  $id         unique cache content identifier
+     * @param  string  $name       template name
+     * @param  string  $cache_id   cache id
+     * @param  string  $compile_id compile id
+     * @param  string  $content    cached content
+     * @param  integer $mtime      cache modification timestamp (epoch)
+     *
      * @return void
      */
     protected function fetch($id, $name, $cache_id, $compile_id, &$content, &$mtime)
     {
         $this->fetch->execute(array('id' => $id));
         $row = $this->fetch->fetch();
-        $this->fetch->closeCursor();        
+        $this->fetch->closeCursor();
         if ($row) {
             $content = $row['content'];
             $mtime = strtotime($row['modified']);
@@ -67,15 +69,17 @@ class Smarty_CacheResource_Mysql extends Smarty_CacheResource_Custom {
             $mtime = null;
         }
     }
-    
+
     /**
      * Fetch cached content's modification timestamp from data source
      *
      * @note implementing this method is optional. Only implement it if modification times can be accessed faster than loading the complete cached content.
-     * @param string $id unique cache content identifier
-     * @param string $name template name
-     * @param string $cache_id cache id
-     * @param string $compile_id compile id
+     *
+     * @param  string $id         unique cache content identifier
+     * @param  string $name       template name
+     * @param  string $cache_id   cache id
+     * @param  string $compile_id compile id
+     *
      * @return integer|boolean timestamp (epoch) the template was modified, or false if not found
      */
     protected function fetchTimestamp($id, $name, $cache_id, $compile_id)
@@ -83,40 +87,44 @@ class Smarty_CacheResource_Mysql extends Smarty_CacheResource_Custom {
         $this->fetchTimestamp->execute(array('id' => $id));
         $mtime = strtotime($this->fetchTimestamp->fetchColumn());
         $this->fetchTimestamp->closeCursor();
+
         return $mtime;
     }
-    
+
     /**
      * Save content to cache
      *
-     * @param string $id unique cache content identifier
-     * @param string $name template name
-     * @param string $cache_id cache id
-     * @param string $compile_id compile id
-     * @param integer|null $exp_time seconds till expiration time in seconds or null
-     * @param string $content content to cache
-     * @return boolean success
+     * @param  string       $id         unique cache content identifier
+     * @param  string       $name       template name
+     * @param  string       $cache_id   cache id
+     * @param  string       $compile_id compile id
+     * @param  integer|null $exp_time   seconds till expiration time in seconds or null
+     * @param  string       $content    content to cache
+     *
+     * @return boolean      success
      */
     protected function save($id, $name, $cache_id, $compile_id, $exp_time, $content)
     {
         $this->save->execute(array(
-            'id' => $id,
-            'name' => $name,
-            'cache_id' => $cache_id,
-            'compile_id' => $compile_id,
-            'content' => $content,
-        ));
+                                 'id'         => $id,
+                                 'name'       => $name,
+                                 'cache_id'   => $cache_id,
+                                 'compile_id' => $compile_id,
+                                 'content'    => $content,
+                             ));
+
         return !!$this->save->rowCount();
     }
-    
+
     /**
      * Delete content from cache
      *
-     * @param string $name template name
-     * @param string $cache_id cache id
-     * @param string $compile_id compile id
-     * @param integer|null $exp_time seconds till expiration or null
-     * @return integer number of deleted caches
+     * @param  string       $name       template name
+     * @param  string       $cache_id   cache id
+     * @param  string       $compile_id compile id
+     * @param  integer|null $exp_time   seconds till expiration or null
+     *
+     * @return integer      number of deleted caches
      */
     protected function delete($name, $cache_id, $compile_id, $exp_time)
     {
@@ -124,7 +132,8 @@ class Smarty_CacheResource_Mysql extends Smarty_CacheResource_Custom {
         if ($name === null && $cache_id === null && $compile_id === null && $exp_time === null) {
             // returning the number of deleted caches would require a second query to count them
             $query = $this->db->query('TRUNCATE TABLE output_cache');
-            return -1;
+
+            return - 1;
         }
         // build the filter
         $where = array();
@@ -142,11 +151,12 @@ class Smarty_CacheResource_Mysql extends Smarty_CacheResource_Custom {
         }
         // equal test cache_id and match sub-groups
         if ($cache_id !== null) {
-            $where[] = '(cache_id = '. $this->db->quote($cache_id)
-                . ' OR cache_id LIKE '. $this->db->quote($cache_id .'|%') .')';
+            $where[] = '(cache_id = ' . $this->db->quote($cache_id)
+                . ' OR cache_id LIKE ' . $this->db->quote($cache_id . '|%') . ')';
         }
         // run delete query
         $query = $this->db->query('DELETE FROM output_cache WHERE ' . join(' AND ', $where));
+
         return $query->rowCount();
     }
 }