/** * Unset references so that a $view object may be properly garbage * collected. */ public function destroy() { foreach ($this::getHandlerTypes() as $type => $info) { if (isset($this->{$type})) { foreach ($this->{$type} as $handler) { $handler->destroy(); } } } if (isset($this->style_plugin)) { $this->style_plugin->destroy(); } $reflection = new \ReflectionClass($this); $defaults = $reflection->getDefaultProperties(); // The external dependencies should not be reset. This is not generated by // the execution of a view. unset($defaults['storage'], $defaults['user'], $defaults['request'], $defaults['routeProvider']); foreach ($defaults as $property => $default) { $this->{$property} = $default; } }