hasItems()) { OC_Hook::connect('\OC\Files\Cache\Upgrade', 'migrate_path', $listener, 'upgradePath'); OC_DB::beginTransaction(); $upgrade = new \OC\Files\Cache\Upgrade($legacy); $count = $legacy->getCount(); $eventSource->send('total', $count); $upgrade->upgradePath('/' . $user . '/files'); OC_DB::commit(); } \OC\Files\Cache\Upgrade::upgradeDone($user); $eventSource->send('done', true); $eventSource->close(); class UpgradeListener { /** * @var OC_EventSource $eventSource */ private $eventSource; private $count = 0; private $lastSend = 0; public function __construct($eventSource) { $this->eventSource = $eventSource; } public function upgradePath($path) { $this->count++; if ($this->count > ($this->lastSend + 5)) { $this->lastSend = $this->count; $this->eventSource->send('count', $this->count); } } }