* public function close(): void { * fclose($this->resource); * } * * public function __destruct() { * $this->close(); * } * * * However if close() is only implemented because a parent interface requires it, the __destruct() implementation may be omitted. */ interface ICloseable { /** * Free, release or reset unmanaged resources. */ function close(): void; }