Add ensureBehaviors() to detachBehavior*()

Need to add ensureBehaviors() to detachBehavior*().

The intent may be to detach behaviors defined in behaviors().
In the original implementation, if these behaviors() are not yet attached, they can not selectively be detached.
This commit is contained in:
mdeweerd
2013-05-06 09:56:15 +03:00
parent d2f35f2062
commit 2d1180f35c

View File

@ -496,6 +496,7 @@ class Component extends Object
*/
public function detachBehavior($name)
{
$this->ensureBehaviors();
if (isset($this->_behaviors[$name])) {
$behavior = $this->_behaviors[$name];
unset($this->_behaviors[$name]);
@ -511,6 +512,7 @@ class Component extends Object
*/
public function detachBehaviors()
{
$this->ensureBehaviors();
if ($this->_behaviors !== null) {
foreach ($this->_behaviors as $name => $behavior) {
$this->detachBehavior($name);