public function __construct($obj) { if (!is_callable(array($obj, 'log'))) { throw new \InvalidArgumentException('$obj must have a public log() method'); } $this->obj = $obj; parent::__construct(); }