Verzeichnisstruktur phpBB-3.1.0


Veröffentlicht
27.10.2014

So funktioniert es


Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück

Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis.
Auf den Verzeichnisnamen klicken, dies zeigt nur das Verzeichnis mit Inhalt an

      (Beispiel Datei-Icons)

Auf das Icon klicken um den Quellcode anzuzeigen

redis.php

Zuletzt modifiziert: 09.10.2024, 12:54 - Dateigröße: 2.85 KiB


 001  <?php
 002  /**
 003  *
 004  * This file is part of the phpBB Forum Software package.
 005  *
 006  * @copyright (c) phpBB Limited <https://www.phpbb.com>
 007  * @license GNU General Public License, version 2 (GPL-2.0)
 008  *
 009  * For full copyright and license information, please see
 010  * the docs/CREDITS.txt file.
 011  *
 012  */
 013   
 014  namespace phpbb\cache\driver;
 015   
 016  if (!defined('PHPBB_ACM_REDIS_PORT'))
 017  {
 018      define('PHPBB_ACM_REDIS_PORT', 6379);
 019  }
 020   
 021  if (!defined('PHPBB_ACM_REDIS_HOST'))
 022  {
 023      define('PHPBB_ACM_REDIS_HOST', 'localhost');
 024  }
 025   
 026  /**
 027  * ACM for Redis
 028  *
 029  * Compatible with the php extension phpredis available
 030  * at https://github.com/nicolasff/phpredis
 031  *
 032  */
 033  class redis extends \phpbb\cache\driver\memory
 034  {
 035      var $extension = 'redis';
 036   
 037      var $redis;
 038   
 039      /**
 040      * Creates a redis cache driver.
 041      *
 042      * The following global constants affect operation:
 043      *
 044      * PHPBB_ACM_REDIS_HOST
 045      * PHPBB_ACM_REDIS_PORT
 046      * PHPBB_ACM_REDIS_PASSWORD
 047      * PHPBB_ACM_REDIS_DB
 048      *
 049      * There are no publicly documented constructor parameters.
 050      */
 051      function __construct()
 052      {
 053          // Call the parent constructor
 054          parent::__construct();
 055   
 056          $this->redis = new \Redis();
 057   
 058          $args = func_get_args();
 059          if (!empty($args))
 060          {
 061              $ok = call_user_func_array(array($this->redis, 'connect'), $args);
 062          }
 063          else
 064          {
 065              $ok = $this->redis->connect(PHPBB_ACM_REDIS_HOST, PHPBB_ACM_REDIS_PORT);
 066          }
 067   
 068          if (!$ok)
 069          {
 070              trigger_error('Could not connect to redis server');
 071          }
 072   
 073          if (defined('PHPBB_ACM_REDIS_PASSWORD'))
 074          {
 075              if (!$this->redis->auth(PHPBB_ACM_REDIS_PASSWORD))
 076              {
 077                  global $acm_type;
 078   
 079                  trigger_error("Incorrect password for the ACM module $acm_type.", E_USER_ERROR);
 080              }
 081          }
 082   
 083          $this->redis->setOption(\Redis::OPT_SERIALIZER, \Redis::SERIALIZER_PHP);
 084          $this->redis->setOption(\Redis::OPT_PREFIX, $this->key_prefix);
 085   
 086          if (defined('PHPBB_ACM_REDIS_DB'))
 087          {
 088              if (!$this->redis->select(PHPBB_ACM_REDIS_DB))
 089              {
 090                  global $acm_type;
 091   
 092                  trigger_error("Incorrect database for the ACM module $acm_type.", E_USER_ERROR);
 093              }
 094          }
 095      }
 096   
 097      /**
 098      * {@inheritDoc}
 099      */
 100      function unload()
 101      {
 102          parent::unload();
 103   
 104          $this->redis->close();
 105      }
 106   
 107      /**
 108      * {@inheritDoc}
 109      */
 110      function purge()
 111      {
 112          $this->redis->flushDB();
 113   
 114          parent::purge();
 115      }
 116   
 117      /**
 118      * Fetch an item from the cache
 119      *
 120      * @access protected
 121      * @param string $var Cache key
 122      * @return mixed Cached data
 123      */
 124      function _read($var)
 125      {
 126          return $this->redis->get($var);
 127      }
 128   
 129      /**
 130      * Store data in the cache
 131      *
 132      * @access protected
 133      * @param string $var Cache key
 134      * @param mixed $data Data to store
 135      * @param int $ttl Time-to-live of cached data
 136      * @return bool True if the operation succeeded
 137      */
 138      function _write($var, $data, $ttl = 2592000)
 139      {
 140          return $this->redis->setex($var, $ttl, $data);
 141      }
 142   
 143      /**
 144      * Remove an item from the cache
 145      *
 146      * @access protected
 147      * @param string $var Cache key
 148      * @return bool True if the operation succeeded
 149      */
 150      function _delete($var)
 151      {
 152          if ($this->redis->delete($var) > 0)
 153          {
 154              return true;
 155          }
 156          return false;
 157      }
 158  }
 159