$command->processChannelCreated($payload->getData()); } }); $client->on('presence_change', function (Slack\Payload $payload) use($client) { if ($payload->getData()['user'] !== $GLOBALS['config']['slack']['botId']) { $command = new \T3Bot\Commands\TellCommand($payload, $client); $command->processPresenceChange($payload->getData()['user'], $payload->getData()['presence']); } }); $client->connect()->then(function () use($client) { echo "Connected!\n"; }); /* @noinspection PhpInternalEntityUsedInspection */ $db = \Doctrine\DBAL\DriverManager::getConnection($GLOBALS['config']['db'], new \Doctrine\DBAL\Configuration()); $loop->addPeriodicTimer(5, function () use($client, $db) { $messages = $db->fetchAll('SELECT * FROM messages ORDER BY id ASC'); foreach ($messages as $message) { $data = json_decode($message['message'], true); $attachments = $data['attachments']; $data['attachments'] = []; foreach ($attachments as $attachment) { $data['attachments'][] = \Slack\Message\Attachment::fromData($attachment); } // process data $messageToSent = new \Slack\Message\Message($client, $data); $client->postMessage($messageToSent); // delete message $db->delete('messages', ['id' => $message['id']]); } }); $loop->run();