Commit 7cfb5d74 authored by Bas de Nooijer's avatar Bas de Nooijer

Implemented remove by object

parent e64ce311
...@@ -359,13 +359,25 @@ class Solarium_Client extends Solarium_Configurable ...@@ -359,13 +359,25 @@ class Solarium_Client extends Solarium_Configurable
/** /**
* Remove a plugin instance * Remove a plugin instance
* *
* @param string $key * You can remove a plugin by passing the plugin key, or the plugin instance
*
* @param string|Solarium_Plugin_Abstract $plugin
* @return Solarium_Client Provides fluent interface * @return Solarium_Client Provides fluent interface
*/ */
public function removePlugin($key) public function removePlugin($plugin)
{ {
if (isset($this->_plugins[$key])) { if (is_object($plugin)) {
foreach ($this->_plugins as $key => $instance)
{
if ($instance === $plugin) {
unset($this->_plugins[$key]); unset($this->_plugins[$key]);
break;
}
}
} else {
if (isset($this->_plugins[$plugin])) {
unset($this->_plugins[$plugin]);
}
} }
return $this; return $this;
} }
......
...@@ -581,15 +581,21 @@ class Solarium_Query_Select extends Solarium_Query ...@@ -581,15 +581,21 @@ class Solarium_Query_Select extends Solarium_Query
} }
/** /**
* Remove a single filterquery by key * Remove a single filterquery
* *
* @param string $key * You can remove a filterquery by passing it's key, or by passing the filterquery instance
*
* @param string|Solarium_Query_Select_FilterQuery $filterQuery
* @return Solarium_Query_Select Provides fluent interface * @return Solarium_Query_Select Provides fluent interface
*/ */
public function removeFilterQuery($key) public function removeFilterQuery($filterQuery)
{ {
if (isset($this->_filterQueries[$key])) { if (is_object($filterQuery)) {
unset($this->_filterQueries[$key]); $filterQuery = $filterQuery->getKey();
}
if (isset($this->_filterQueries[$filterQuery])) {
unset($this->_filterQueries[$filterQuery]);
} }
return $this; return $this;
...@@ -708,13 +714,25 @@ class Solarium_Query_Select extends Solarium_Query ...@@ -708,13 +714,25 @@ class Solarium_Query_Select extends Solarium_Query
/** /**
* Remove a component instance * Remove a component instance
* *
* @param string $key * You can remove a component by passing it's key or the component instance
*
* @param string|Solarium_Query_Select_Component $component
* @return Solarium_Query_Select Provides fluent interface * @return Solarium_Query_Select Provides fluent interface
*/ */
public function removeComponent($key) public function removeComponent($component)
{ {
if (isset($this->_components[$key])) { if (is_object($component)) {
foreach ($this->_components as $key => $instance)
{
if ($instance === $component) {
unset($this->_components[$key]); unset($this->_components[$key]);
break;
}
}
} else {
if (isset($this->_components[$component])) {
unset($this->_components[$component]);
}
} }
return $this; return $this;
} }
......
...@@ -191,15 +191,21 @@ class Solarium_Query_Select_Component_Facet_MultiQuery extends Solarium_Query_Se ...@@ -191,15 +191,21 @@ class Solarium_Query_Select_Component_Facet_MultiQuery extends Solarium_Query_Se
} }
/** /**
* Remove a single facetquery by key * Remove a single facetquery
* *
* @param string $key * You can remove a facetquery by passing it's key or the facetquery instance
*
* @param string|Solarium_Query_Select_Component_Facet_Query $query
* @return Solarium_Query_Select_Component_Facet_MultiQuery Provides fluent interface * @return Solarium_Query_Select_Component_Facet_MultiQuery Provides fluent interface
*/ */
public function removeQuery($key) public function removeQuery($query)
{ {
if (isset($this->_facetQueries[$key])) { if (is_object($query)) {
unset($this->_facetQueries[$key]); $query = $query->getKey();
}
if (isset($this->_facetQueries[$query])) {
unset($this->_facetQueries[$query]);
} }
return $this; return $this;
......
...@@ -322,15 +322,21 @@ class Solarium_Query_Select_Component_FacetSet extends Solarium_Query_Select_Com ...@@ -322,15 +322,21 @@ class Solarium_Query_Select_Component_FacetSet extends Solarium_Query_Select_Com
} }
/** /**
* Remove a single facet by key * Remove a single facet
* *
* @param string $key * You can remove a facet by passing it's key or the facet instance
*
* @param string|Solarium_Query_Select_Component_Facet $facet
* @return Solarium_Query Provides fluent interface * @return Solarium_Query Provides fluent interface
*/ */
public function removeFacet($key) public function removeFacet($facet)
{ {
if (isset($this->_facets[$key])) { if (is_object($facet)) {
unset($this->_facets[$key]); $facet = $facet->getKey();
}
if (isset($this->_facets[$facet])) {
unset($this->_facets[$facet]);
} }
return $this; return $this;
......
...@@ -197,16 +197,29 @@ class Solarium_Query_Update extends Solarium_Query ...@@ -197,16 +197,29 @@ class Solarium_Query_Update extends Solarium_Query
} }
/** /**
* Remove a command by key * Remove a command
* *
* @param string $key * You can remove a command by passing it's key or by passing the command instance
*
* @param string|Solarium_Query_Update_Command $command
* @return Solarium_Query_Update Provides fluent interface * @return Solarium_Query_Update Provides fluent interface
*/ */
public function remove($key) public function remove($command)
{ {
if (isset($this->_commands[$key])) { if (is_object($command)) {
foreach ($this->_commands as $key => $instance)
{
if ($instance === $command) {
unset($this->_commands[$key]); unset($this->_commands[$key]);
break;
}
} }
} else {
if (isset($this->_commands[$command])) {
unset($this->_commands[$command]);
}
}
return $this; return $this;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment