Be careful, the lib does not send a DISCONNECT frame on destruction. Therefore the sessions will outlive the instance, accumulating in Artemis servers!(PECL stomp >= 0.1.0)
Stomp::__destruct -- stomp_close — Ferme une connexion
Style orienté objet (destructeur) :
Style procédural :
Ferme une connexion préalablement ouverte.
linkStyle procédural uniquement : L'identifiant stomp retourné par la fonctionstomp_connect().
Voir stomp_connect().
Be careful, the lib does not send a DISCONNECT frame on destruction. Therefore the sessions will outlive the instance, accumulating in Artemis servers!Isn't it a little odd to have connect/disconnect in the constructor/destructor methods? 
I have a case where the connection is presumably kept alive until the PHP process ends:
<?php
class MyStompWrapper {
    public function doSend()
    {
        $stomp = $this->connect(); // returns Stomp Object
        $stomp->send('/destination', 'message', []);
        $this->disconnect($stomp);
        // $stomp still exists in this scope, hence, the connection is alive
    }
    private function disconnect(\Stomp $stompObj)
    {
        // only unsets the local $stomp pointer, does not actually disconnect
        unset($stomp);
    }
    private function connect():\Stomp
    {
        // try-catch block omitted for example brevity
        return new Stomp('url', 'username', 'password');
    }
}
?>
This means that, in order to handle disconnecting, I have to create and destroy the Stomp object within the same scope.