From 82695acc70e0c1552468a3624bf93727f3a0ca6d Mon Sep 17 00:00:00 2001
From: mattab <matthieu.aubry@gmail.com>
Date: Thu, 10 Oct 2013 00:03:12 +1300
Subject: [PATCH] Refs #4202 Cleaning up the good old bridge classes

---
 core/DataTable.php                   | 14 +++----------
 core/DataTable/Bridges.php           | 30 ++++++++++++++++++++++++++++
 tests/PHPUnit/Core/DataTableTest.php |  1 +
 3 files changed, 34 insertions(+), 11 deletions(-)
 create mode 100644 core/DataTable/Bridges.php

diff --git a/core/DataTable.php b/core/DataTable.php
index 8bb6a93227..00170291d0 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 0000000000..42f5ada81a
--- /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 d5195bd312..1b761b8647 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);
 
-- 
GitLab