예제 #1
0
    }
    $sessionId = $matches[1];
    $i++;
    $expiry = filemtime($file) + $sessionLifetime;
    if (time() > $expiry) {
        $expired++;
        continue;
    }
    $sessionData = file_get_contents($file);
    if (!$sessionData) {
        echo "No session data read for {$sessionFile}\n";
        $noData++;
        continue;
    }
    $startTime = microtime(true);
    if ($test) {
        $beforeSize += strlen($sessionData);
        $afterSize += strlen($redisSession->_encodeData($sessionData));
    } else {
        $redisSession->_writeRawSession($sessionId, $sessionData, $expiry - time());
    }
    $elapsedTime += microtime(true) - $startTime;
    $migrated++;
}
$reasons = $expired || $noData ? " ({$expired} expired, {$noData} no data)" : '';
if ($test) {
    printf("Can migrate %d of %d sessions%s. Compressed from %d to %d (%.5f%% savings) in %.5f seconds\n", $migrated, $i, $reasons, $beforeSize, $afterSize, ($beforeSize - $afterSize) / $beforeSize * 100, $elapsedTime);
} else {
    printf("Migrated %d of %d session files in %.5f seconds%s\n", $migrated, $i, $elapsedTime, $reasons);
    Mage::app()->cleanCache(Mage_Core_Model_Config::CACHE_TAG);
}