Search moodle.org's
Developer Documentation

See Release Notes
Long Term Support Release

  • Bug fixes for general core bugs in 3.9.x will end* 10 May 2021 (12 months).
  • Bug fixes for security issues in 3.9.x will end* 8 May 2023 (36 months).
  • PHP version: minimum PHP 7.2.0 Note: minimum PHP version has increased since Moodle 3.8. PHP 7.3.x and 7.4.x are supported too.

Differences Between: [Versions 39 and 311] [Versions 39 and 400] [Versions 39 and 401] [Versions 39 and 402] [Versions 39 and 403]

   1  <?php
   2  // This file is part of Moodle - http://moodle.org/
   3  //
   4  // Moodle is free software: you can redistribute it and/or modify
   5  // it under the terms of the GNU General Public License as published by
   6  // the Free Software Foundation, either version 3 of the License, or
   7  // (at your option) any later version.
   8  //
   9  // Moodle is distributed in the hope that it will be useful,
  10  // but WITHOUT ANY WARRANTY; without even the implied warranty of
  11  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12  // GNU General Public License for more details.
  13  //
  14  // You should have received a copy of the GNU General Public License
  15  // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
  16  
  17  /**
  18   * Read slave helper that exposes selected moodle_read_slave_trait metods
  19   *
  20   * @package    core
  21   * @category   dml
  22   * @copyright  2018 Srdjan Janković, Catalyst IT
  23   * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  24   */
  25  
  26  defined('MOODLE_INTERNAL') || die();
  27  
  28  require_once (__DIR__.'/../../pgsql_native_moodle_database.php');
  29  
  30  /**
  31   * Read slave helper that exposes selected moodle_read_slave_trait metods
  32   *
  33   * @package    core
  34   * @category   dml
  35   * @copyright  2018 Catalyst IT
  36   * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  37   */
  38  trait test_moodle_read_slave_trait {
  39      // @codingStandardsIgnoreStart
  40      /**
  41       * Constructs a mock db driver
  42       *
  43       * @param bool $external
  44       */
  45      public function __construct($external = false) {
  46      // @codingStandardsIgnoreEnd
  47          parent::__construct($external);
  48  
  49          $this->wantreadslave = true;
  50          $this->dbhwrite = 'test_rw';
  51          $this->dbhreadonly = 'test_ro';
  52          $this->set_db_handle($this->dbhwrite);
  53  
  54          $this->temptables = new moodle_temptables($this);
  55      }
  56  
  57      /**
  58       * Upgrade to public
  59       * @return resource
  60       */
  61      public function get_db_handle() {
  62          return parent::get_db_handle();
  63      }
  64  
  65      /**
  66       * Upgrade to public
  67       * @param string $sql
  68       * @param array $params
  69       * @param int $type
  70       * @param array $extrainfo
  71       */
  72      public function query_start($sql, array $params = null, $type, $extrainfo = null) {
  73          return parent::query_start($sql, $params, $type);
  74      }
  75  
  76      /**
  77       * Upgrade to public
  78       * @param mixed $result
  79       */
  80      public function query_end($result) {
  81          $this->set_db_handle($this->dbhwrite);
  82      }
  83  
  84      /**
  85       * Upgrade to public
  86       */
  87      public function dispose() {
  88      }
  89  }