<?php namespace Ratchet; /** * Wraps ConnectionInterface objects via the decorator pattern but allows * parameters to bubble through with magic methods * @todo It sure would be nice if I could make most of this a trait... */ abstract class AbstractConnectionDecorator implements ConnectionInterface { /** * @var ConnectionInterface */ protected $wrappedConn; public function __construct(ConnectionInterface $conn) { $this->wrappedConn = $conn; } /** * @return ConnectionInterface */ protected function getConnection() { return $this->wrappedConn; } public function __set($name, $value) { $this->wrappedConn->$name = $value; } public function __get($name) { return $this->wrappedConn->$name; } public function __isset($name) { return isset($this->wrappedConn->$name); } public function __unset($name) { unset($this->wrappedConn->$name); } }