install(); try { return $this->run( $forward ); } finally { foreach ( array_reverse( $bindings ) as $binding ) { remove_filter( $binding[0], $binding[1], $binding[2] ); } } } /** * Return the response data unshaped. * * @param mixed $data Response data. * * @return mixed */ public function post_process( $data ) { return $data; } /** * Install hooks and return their exact removal tuples. * * @return array */ protected function install(): array { return array(); } /** * Run the forward, optionally through a resource plan. * * @param callable $forward Forward operation. * * @return mixed */ protected function run( callable $forward ) { return $forward(); } }