PHPDaemon\Clients\XMPP\XMPPRoster::__construct PHP Method

__construct() public method

Constructor
public __construct ( Connection $xmpp )
$xmpp Connection
    public function __construct($xmpp)
    {
        $this->xmpp = $xmpp;
        $this->xmpp->xml->addXPathHandler('{jabber:client}presence', function ($xml) {
            $payload = [];
            $payload['type'] = isset($xml->attrs['type']) ? $xml->attrs['type'] : 'available';
            $payload['show'] = isset($xml->sub('show')->data) ? $xml->sub('show')->data : $payload['type'];
            $payload['from'] = $xml->attrs['from'];
            $payload['status'] = isset($xml->sub('status')->data) ? $xml->sub('status')->data : '';
            $payload['priority'] = isset($xml->sub('priority')->data) ? intval($xml->sub('priority')->data) : 0;
            $payload['xml'] = $xml;
            if ($payload['from'] === $this->xmpp->fulljid && $payload['type'] === 'unavailable') {
                $this->xmpp->finish();
            }
            if ($this->track_presence) {
                $this->setPresence($payload['from'], $payload['priority'], $payload['show'], $payload['status']);
            }
            //Daemon::log("Presence: {$payload['from']} [{$payload['show']}] {$payload['status']}");
            if (array_key_exists('type', $xml->attrs) and $xml->attrs['type'] === 'subscribe') {
                if ($this->auto_subscribe) {
                    $this->xmpp->sendXML("<presence type='subscribed' to='{$xml->attrs['from']}' from='{$this->xmpp->fulljid}' />");
                    $this->xmpp->sendXML("<presence type='subscribe' to='{$xml->attrs['from']}' from='{$this->xmpp->fulljid}' />");
                }
                $this->event('subscription_requested', $payload);
            } elseif (array_key_exists('type', $xml->attrs) and $xml->attrs['type'] === 'subscribed') {
                $this->event('subscription_accepted', $payload);
            } else {
                $this->event('presence', $payload);
            }
        });
        $this->fetch();
    }