diff --git a/admin/tool/log/store/database/classes/log/store.php b/admin/tool/log/store/database/classes/log/store.php index 118fa7c66e7..d484c7c3300 100644 --- a/admin/tool/log/store/database/classes/log/store.php +++ b/admin/tool/log/store/database/classes/log/store.php @@ -25,7 +25,7 @@ namespace logstore_database\log; defined('MOODLE_INTERNAL') || die(); -class store implements \tool_log\log\writer, \core\log\reader { +class store implements \tool_log\log\writer, \core\log\sql_select_reader { use \tool_log\helper\store, \tool_log\helper\reader, \tool_log\helper\buffered_writer { @@ -166,7 +166,7 @@ class store implements \tool_log\log\writer, \core\log\reader { * * @return array|\core\event\base[] array of events. */ - public function get_events($selectwhere, array $params, $sort, $limitfrom, $limitnum) { + public function get_events_select($selectwhere, array $params, $sort, $limitfrom, $limitnum) { if (!$this->init()) { return array(); } @@ -205,7 +205,7 @@ class store implements \tool_log\log\writer, \core\log\reader { * * @return int Number of events available for the given conditions */ - public function get_events_count($selectwhere, array $params) { + public function get_events_select_count($selectwhere, array $params) { if (!$this->init()) { return 0; } diff --git a/admin/tool/log/store/database/tests/store_test.php b/admin/tool/log/store/database/tests/store_test.php index e33b5b1c4bb..e71e58e0f67 100644 --- a/admin/tool/log/store/database/tests/store_test.php +++ b/admin/tool/log/store/database/tests/store_test.php @@ -150,7 +150,8 @@ class logstore_database_store_testcase extends advanced_testcase { $this->assertEquals($data, $log3); // Test reading. - $events = $store->get_events('', array(), 'id', 0, 0); + $this->assertSame(3, $store->get_events_select_count('', array())); + $events = $store->get_events_select('', array(), 'id', 0, 0); $this->assertCount(3, $events); $resev1 = array_shift($events); array_shift($events); diff --git a/admin/tool/log/store/legacy/classes/log/store.php b/admin/tool/log/store/legacy/classes/log/store.php index 0332c467151..d69851a3900 100644 --- a/admin/tool/log/store/legacy/classes/log/store.php +++ b/admin/tool/log/store/legacy/classes/log/store.php @@ -26,7 +26,7 @@ namespace logstore_legacy\log; defined('MOODLE_INTERNAL') || die(); -class store implements \tool_log\log\store, \core\log\reader { +class store implements \tool_log\log\store, \core\log\sql_select_reader { use \tool_log\helper\store, \tool_log\helper\reader; @@ -42,7 +42,7 @@ class store implements \tool_log\log\store, \core\log\reader { 'origin' => 'ip' ); - public function get_events($selectwhere, array $params, $sort, $limitfrom, $limitnum) { + public function get_events_select($selectwhere, array $params, $sort, $limitfrom, $limitnum) { global $DB; // Replace db field names to make it compatible with legacy log. @@ -71,7 +71,7 @@ class store implements \tool_log\log\store, \core\log\reader { return $events; } - public function get_events_count($selectwhere, array $params) { + public function get_events_select_count($selectwhere, array $params) { global $DB; // Replace db field names to make it compatible with legacy log. diff --git a/admin/tool/log/store/legacy/tests/store_test.php b/admin/tool/log/store/legacy/tests/store_test.php index 568d963e315..2a1a5fd0ca4 100644 --- a/admin/tool/log/store/legacy/tests/store_test.php +++ b/admin/tool/log/store/legacy/tests/store_test.php @@ -49,7 +49,7 @@ class logstore_legacy_store_testcase extends advanced_testcase { $this->assertEquals(array('logstore_legacy'), array_keys($stores)); $store = $stores['logstore_legacy']; $this->assertInstanceOf('logstore_legacy\log\store', $store); - $this->assertInstanceOf('core\log\reader', $store); + $this->assertInstanceOf('core\log\sql_select_reader', $store); $this->assertTrue($store->is_logging()); $logs = $DB->get_records('log', array(), 'id ASC'); diff --git a/admin/tool/log/store/standard/classes/log/store.php b/admin/tool/log/store/standard/classes/log/store.php index 162c827558f..c2dd866b2aa 100644 --- a/admin/tool/log/store/standard/classes/log/store.php +++ b/admin/tool/log/store/standard/classes/log/store.php @@ -26,7 +26,7 @@ namespace logstore_standard\log; defined('MOODLE_INTERNAL') || die(); -class store implements \tool_log\log\writer, \core\log\sql_reader { +class store implements \tool_log\log\writer, \core\log\sql_internal_reader { use \tool_log\helper\store, \tool_log\helper\buffered_writer, \tool_log\helper\reader; @@ -75,7 +75,7 @@ class store implements \tool_log\log\writer, \core\log\sql_reader { $DB->insert_records('logstore_standard_log', $dataobj); } - public function get_events($selectwhere, array $params, $sort, $limitfrom, $limitnum) { + public function get_events_select($selectwhere, array $params, $sort, $limitfrom, $limitnum) { global $DB; $events = array(); @@ -100,12 +100,12 @@ class store implements \tool_log\log\writer, \core\log\sql_reader { return $events; } - public function get_events_count($selectwhere, array $params) { + public function get_events_select_count($selectwhere, array $params) { global $DB; return $DB->count_records_select('logstore_standard_log', $selectwhere, $params); } - public function get_log_table() { + public function get_internal_log_table_name() { return 'logstore_standard_log'; } diff --git a/admin/tool/log/store/standard/tests/store_test.php b/admin/tool/log/store/standard/tests/store_test.php index f4aee7a7883..2c2ea342148 100644 --- a/admin/tool/log/store/standard/tests/store_test.php +++ b/admin/tool/log/store/standard/tests/store_test.php @@ -111,8 +111,13 @@ class logstore_standard_store_testcase extends advanced_testcase { $data['realuserid'] = 2; $this->assertEquals($data, $log3); + // Test table exists. + $tablename = $store->get_internal_log_table_name(); + $this->assertTrue($DB->get_manager()->table_exists($tablename)); + // Test reading. - $events = $store->get_events('', array(), 'id', 0, 0); + $this->assertSame(3, $store->get_events_select_count('', array())); + $events = $store->get_events_select('', array(), 'id', 0, 0); $this->assertCount(3, $events); $resev1 = array_shift($events); array_shift($events); diff --git a/admin/tool/log/tests/manager_test.php b/admin/tool/log/tests/manager_test.php index 6fb1a90b240..1e2e726eee5 100644 --- a/admin/tool/log/tests/manager_test.php +++ b/admin/tool/log/tests/manager_test.php @@ -48,24 +48,24 @@ class tool_log_manager_testcase extends advanced_testcase { $this->assertCount(2, $stores); foreach ($stores as $key => $store) { $this->assertInternalType('string', $key); - $this->assertInstanceOf('core\log\reader', $store); + $this->assertInstanceOf('core\log\sql_select_reader', $store); } - $stores = $manager->get_readers('core\log\sql_reader'); + $stores = $manager->get_readers('core\log\sql_internal_reader'); $this->assertInternalType('array', $stores); $this->assertCount(1, $stores); foreach ($stores as $key => $store) { $this->assertInternalType('string', $key); $this->assertSame('logstore_standard', $key); - $this->assertInstanceOf('core\log\sql_reader', $store); + $this->assertInstanceOf('core\log\sql_internal_reader', $store); } - $stores = $manager->get_readers('core\log\reader'); + $stores = $manager->get_readers('core\log\sql_select_reader'); $this->assertInternalType('array', $stores); $this->assertCount(2, $stores); foreach ($stores as $key => $store) { $this->assertInternalType('string', $key); - $this->assertInstanceOf('core\log\reader', $store); + $this->assertInstanceOf('core\log\sql_select_reader', $store); } } } diff --git a/lib/classes/log/reader.php b/lib/classes/log/reader.php index 1743ec67b15..53a093c502d 100644 --- a/lib/classes/log/reader.php +++ b/lib/classes/log/reader.php @@ -49,27 +49,6 @@ interface reader { */ public function can_access(\context $context); - /** - * Fetch records using given criteria. - * - * @param string $selectwhere - * @param array $params - * @param string $sort - * @param int $limitfrom - * @param int $limitnum - * @return \core\event\base[] - */ - public function get_events($selectwhere, array $params, $sort, $limitfrom, $limitnum); - - /** - * Return number of events matching given criteria. - * - * @param string $selectwhere - * @param array $params - * @return int - */ - public function get_events_count($selectwhere, array $params); - /** * Are the new events appearing in the reader? * diff --git a/lib/classes/log/sql_reader.php b/lib/classes/log/sql_internal_reader.php similarity index 89% rename from lib/classes/log/sql_reader.php rename to lib/classes/log/sql_internal_reader.php index 6ae8ad88675..dbd1b825f6b 100644 --- a/lib/classes/log/sql_reader.php +++ b/lib/classes/log/sql_internal_reader.php @@ -18,7 +18,7 @@ * Log storage sql reader interface. * * @package core - * @copyright 2013 Petr Skoda {@link http://skodak.org} + * @copyright 2014 Petr Skoda * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ @@ -26,7 +26,7 @@ namespace core\log; defined('MOODLE_INTERNAL') || die(); -interface sql_reader extends reader { +interface sql_internal_reader extends sql_select_reader { /** * Returns name of the table or database view that @@ -37,5 +37,5 @@ interface sql_reader extends reader { * * @return string */ - public function get_log_table(); + public function get_internal_log_table_name(); } diff --git a/lib/classes/log/sql_select_reader.php b/lib/classes/log/sql_select_reader.php new file mode 100644 index 00000000000..216399e44d1 --- /dev/null +++ b/lib/classes/log/sql_select_reader.php @@ -0,0 +1,50 @@ +. + +/** + * Log storage reader interface. + * + * @package core + * @copyright 2013 Petr Skoda {@link http://skodak.org} + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +namespace core\log; + +defined('MOODLE_INTERNAL') || die(); + +interface sql_select_reader extends reader { + /** + * Fetch records using given criteria. + * + * @param string $selectwhere + * @param array $params + * @param string $sort + * @param int $limitfrom + * @param int $limitnum + * @return \core\event\base[] + */ + public function get_events_select($selectwhere, array $params, $sort, $limitfrom, $limitnum); + + /** + * Return number of events matching given criteria. + * + * @param string $selectwhere + * @param array $params + * @return int + */ + public function get_events_select_count($selectwhere, array $params); +}