diff --git a/core/DataTable.php b/core/DataTable.php index 8bb6a93227de283f5a88e57e44eb6e98a9cc3fc9..00170291d0416e32d3f308e2a6c2794b76ffff71 100644 --- a/core/DataTable.php +++ b/core/DataTable.php @@ -1097,6 +1097,8 @@ class DataTable */ public function addRowsFromSerializedArray($stringSerialized) { + require_once PIWIK_INCLUDE_PATH . "/core/DataTable/Bridges.php"; + $serialized = unserialize($stringSerialized); if ($serialized === false) { throw new Exception("The unserialization has failed!"); @@ -1508,14 +1510,4 @@ class DataTable $result->addRowsFromSerializedArray($data); return $result; } -} - - -// Bridge for when serialized classes were not using namespaces yet (pre Piwik 2.0) -class Piwik_DataTable_Row_DataTableSummary extends DataTableSummaryRow -{ -} - -class Piwik_DataTable_Row extends Row -{ -} +} \ No newline at end of file diff --git a/core/DataTable/Bridges.php b/core/DataTable/Bridges.php new file mode 100644 index 0000000000000000000000000000000000000000..42f5ada81ac780e1489e0435fa61820e238d91e9 --- /dev/null +++ b/core/DataTable/Bridges.php @@ -0,0 +1,30 @@ +<?php +/** + * Piwik - Open source web analytics + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + * + * @category Piwik + * @package Piwik + */ + +/** + * This contains the bridge classes which were used prior to Piwik 2.0 + * The serialized reports contains these classes below, which were not using namespaces yet + */ +namespace { + + use Piwik\DataTable\Row\DataTableSummaryRow; + use Piwik\DataTable\Row; + + class Piwik_DataTable_Row_DataTableSummary extends DataTableSummaryRow + { + } + + class Piwik_DataTable_Row extends Row + { + } + +} + diff --git a/tests/PHPUnit/Core/DataTableTest.php b/tests/PHPUnit/Core/DataTableTest.php index d5195bd31217ed2c929abe71164203afcfe84a00..1b761b8647ba610fc16a922cecec66d0d1b28e2f 100644 --- a/tests/PHPUnit/Core/DataTableTest.php +++ b/tests/PHPUnit/Core/DataTableTest.php @@ -307,6 +307,7 @@ class DataTableTest extends PHPUnit_Framework_TestCase $serializedDatatable = ''; // Prior Piwik 2.0, we didn't use namespaces. Some require PIWIK_INCLUDE_PATH . "/tests/resources/pre-Piwik2-DataTable-archived.php"; + require_once PIWIK_INCLUDE_PATH . "/core/DataTable/Bridges.php"; $this->assertTrue(strlen($serializedDatatable) > 1000);