mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-03 22:32:40 +08:00
Fix #17223: Fixed detaching a behavior event when it is a Closure instance
This commit is contained in:
committed by
Alexander Makarov
parent
14a7198434
commit
491f9737fe
@ -4,6 +4,7 @@ Yii Framework 2 Change Log
|
||||
2.0.25 under development
|
||||
------------------------
|
||||
|
||||
- Bug #17223: Fixed detaching a behavior event when it is a Closure instance (GHopperMSK, rob006)
|
||||
- Bug #15779: If directory path is passed to `FileHelper::unlink()` and directory has files it will not delete files in this directory on Windows now (alexkart)
|
||||
- Bug #17473: Fixed `SimpleConditionBuilder::build()` when column is not a string (alexkart)
|
||||
- Bug #17486: Fixed error when using `batch()` without `$db` parameter with MSSQL (alexkart)
|
||||
|
||||
@ -27,6 +27,10 @@ class Behavior extends BaseObject
|
||||
*/
|
||||
public $owner;
|
||||
|
||||
/**
|
||||
* @var Array Attached events handlers
|
||||
*/
|
||||
private $_attachedEvents = [];
|
||||
|
||||
/**
|
||||
* Declares event handlers for the [[owner]]'s events.
|
||||
@ -72,6 +76,7 @@ class Behavior extends BaseObject
|
||||
{
|
||||
$this->owner = $owner;
|
||||
foreach ($this->events() as $event => $handler) {
|
||||
$this->_attachedEvents[$event] = $handler;
|
||||
$owner->on($event, is_string($handler) ? [$this, $handler] : $handler);
|
||||
}
|
||||
}
|
||||
@ -85,9 +90,10 @@ class Behavior extends BaseObject
|
||||
public function detach()
|
||||
{
|
||||
if ($this->owner) {
|
||||
foreach ($this->events() as $event => $handler) {
|
||||
foreach ($this->_attachedEvents as $event => $handler) {
|
||||
$this->owner->off($event, is_string($handler) ? [$this, $handler] : $handler);
|
||||
}
|
||||
$this->_attachedEvents = [];
|
||||
$this->owner = null;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user