diff --git a/src/Symfony/Component/HttpKernel/Profiler/Profiler.php b/src/Symfony/Component/HttpKernel/Profiler/Profiler.php index f226a83ae6..b451bc62ca 100644 --- a/src/Symfony/Component/HttpKernel/Profiler/Profiler.php +++ b/src/Symfony/Component/HttpKernel/Profiler/Profiler.php @@ -89,6 +89,19 @@ class Profiler return $profiler; } + /** + * Purges all data from the storage. + */ + public function purge() + { + $this->storage->purge(); + } + + /** + * Exports the current profiler data. + * + * @return string The exported data + */ public function export() { $unpack = unpack('H*', serialize(array($this->token, $this->collectors, $this->ip, $this->url, $this->time))); @@ -96,6 +109,13 @@ class Profiler return $unpack[1]; } + /** + * Imports data into the profiler storage. + * + * @param string $data A data string as exported by the export() method + * + * @return string The token associated with the imported data + */ public function import($data) { list($token, $collectors, $ip, $url, $time) = unserialize(pack('H*', $data)); diff --git a/src/Symfony/Component/HttpKernel/Profiler/ProfilerStorageInterface.php b/src/Symfony/Component/HttpKernel/Profiler/ProfilerStorageInterface.php index 7df35704fd..c8d12eeaae 100644 --- a/src/Symfony/Component/HttpKernel/Profiler/ProfilerStorageInterface.php +++ b/src/Symfony/Component/HttpKernel/Profiler/ProfilerStorageInterface.php @@ -50,4 +50,9 @@ interface ProfilerStorageInterface * @param integer $time The time of the data */ function write($token, $data, $ip, $url, $time); + + /** + * Purges all data from the database. + */ + function purge(); } diff --git a/src/Symfony/Component/HttpKernel/Profiler/SQLiteProfilerStorage.php b/src/Symfony/Component/HttpKernel/Profiler/SQLiteProfilerStorage.php index 9ad7971c22..185f571e7f 100644 --- a/src/Symfony/Component/HttpKernel/Profiler/SQLiteProfilerStorage.php +++ b/src/Symfony/Component/HttpKernel/Profiler/SQLiteProfilerStorage.php @@ -89,21 +89,24 @@ class SQLiteProfilerStorage implements ProfilerStorageInterface ':time' => $time, ); $this->exec($db, 'INSERT INTO data (token, data, ip, url, time) VALUES (:token, :data, :ip, :url, :time)', $args); - $this->purge(); + $this->cleanup(); $this->close($db); } - public function purge($all = false) + /** + * {@inheritdoc} + */ + public function purge() { $db = $this->initDb(); + $this->exec($db, 'DELETE FROM data'); + $this->close($db); + } - if (true === $all) { - $this->exec($db, 'DELETE FROM data'); - } else { - $args = array(':time' => time() - $this->lifetime); - $this->exec($db, 'DELETE FROM data WHERE time < :time', $args); - } - + protected function cleanup() + { + $db = $this->initDb(); + $this->exec($db, 'DELETE FROM data WHERE time < :time', array(':time' => time() - $this->lifetime)); $this->close($db); }