Piwik\Columns\Updater::getAllVersions PHP Method

getAllVersions() public method

public getAllVersions ( Updater $updater )
$updater Piwik\Updater
    public function getAllVersions(PiwikUpdater $updater)
    {
        // to avoid having to load all dimensions on each request we check if there were any changes on the file system
        // can easily save > 100ms for each request
        $cachedTimes = self::getCachedDimensionFileChanges();
        $currentTimes = self::getCurrentDimensionFileChanges();
        $diff = array_diff_assoc($currentTimes, $cachedTimes);
        if (empty($diff)) {
            return array();
        }
        $versions = array();
        $visitColumns = DbHelper::getTableColumns(Common::prefixTable('log_visit'));
        $actionColumns = DbHelper::getTableColumns(Common::prefixTable('log_link_visit_action'));
        $conversionColumns = DbHelper::getTableColumns(Common::prefixTable('log_conversion'));
        foreach ($this->getVisitDimensions() as $dimension) {
            $versions = $this->mixinVersions($updater, $dimension, VisitDimension::INSTALLER_PREFIX, $visitColumns, $versions);
        }
        foreach ($this->getActionDimensions() as $dimension) {
            $versions = $this->mixinVersions($updater, $dimension, ActionDimension::INSTALLER_PREFIX, $actionColumns, $versions);
        }
        foreach ($this->getConversionDimensions() as $dimension) {
            $versions = $this->mixinVersions($updater, $dimension, ConversionDimension::INSTALLER_PREFIX, $conversionColumns, $versions);
        }
        return $versions;
    }

Usage Example

Example #1
0
 /**
  * @dataProvider getCoreDimensionsForGetAllVersionsTest
  */
 public function test_getAllVersions_ReturnsNoVersions_ForCoreDimensions_ThatWereRefactored_AndHaveNoDbVersion($table, $columnName, $columnType)
 {
     $this->addDimensionsToTables();
     $this->addDimensionToTable($table, $columnName, $columnType);
     $updater = $this->getMockUpdater();
     $actualVersions = $this->columnsUpdater->getAllVersions($updater);
     $expectedVersions = array('log_visit.test_visit_col_1' => 'INTEGER(10) UNSIGNED NOT NULL', 'log_visit.test_visit_col_2' => 'VARCHAR(32) NOT NULL', 'log_link_visit_action.test_action_col_1' => 'VARCHAR(32) NOT NULL', 'log_link_visit_action.test_action_col_2' => 'INTEGER(10) UNSIGNED DEFAULT NULL', 'log_conversion.test_conv_col_1' => 'FLOAT DEFAULT NULL', 'log_conversion.test_conv_col_2' => 'VARCHAR(32) NOT NULL');
     $this->assertEquals($actualVersions, $expectedVersions);
 }
All Usage Examples Of Piwik\Columns\Updater::getAllVersions