function view::destroy
Same name in other branches
- 6.x-3.x includes/view.inc \view::destroy()
Unset references so that a $view object may be properly garbage collected.
File
-
includes/
view.inc, line 2069
Class
- view
- An object to contain all of the data to generate a view.
Code
public function destroy() {
foreach (array_keys($this->display) as $display_id) {
if (isset($this->display[$display_id]->handler) && is_object($this->display[$display_id]->handler)) {
$this->display[$display_id]->handler
->destroy();
unset($this->display[$display_id]->handler);
}
}
foreach (views_object_types() as $type => $info) {
if (isset($this->{$type})) {
$handlers =& $this->{$type};
foreach ($handlers as $id => $item) {
$handlers[$id]->destroy();
}
unset($handlers);
}
}
if (isset($this->style_plugin)) {
$this->style_plugin
->destroy();
unset($this->style_plugin);
}
// Clear these to make sure the view can be processed/used again.
if (isset($this->display_handler)) {
unset($this->display_handler);
}
if (isset($this->current_display)) {
unset($this->current_display);
}
if (isset($this->query)) {
unset($this->query);
}
$keys = array(
'current_display',
'display_handler',
'build_info',
'built',
'executed',
'attachment_before',
'attachment_after',
'field',
'argument',
'filter',
'sort',
'relationship',
'header',
'footer',
'empty',
'query',
'result',
'inited',
'style_plugin',
'plugin_name',
'exposed_data',
'exposed_input',
'many_to_one_tables',
);
foreach ($keys as $key) {
if (isset($this->{$key})) {
unset($this->{$key});
}
}
// These keys are checked by the next init, so instead of unsetting them,
// just set the default values.
$keys = array(
'items_per_page',
'offset',
'current_page',
);
foreach ($keys as $key) {
if (isset($this->{$key})) {
$this->{$key} = NULL;
}
}
$this->built = $this->executed = FALSE;
$this->build_info = array();
$this->attachment_before = '';
$this->attachment_after = '';
}