Ничего хранить не надо.
Я делал так/**
* @return void
*/
public function processUpdates()
{
$updates = $this->api->getUpdates();
$lastUpdateId = null;
foreach ($updates as $update) {
$lastUpdateId = $update->getUpdateId();
$this->processUpdate($update);
}
if ($lastUpdateId) {
$this->api->getUpdates($lastUpdateId + 1, 1);
}
}
- Получаем список сообщений, сохраняя последний полученный id
- Обрабатываем их
- Еще раз получаем список сообщений, указав смещение в "{последний полученный id} + 1"
- Следующее получение списка сообщений без параметров будет выводить только неполученные до этого сообщения