From ec549aa4db384edf9adde211d52194efb60968ce Mon Sep 17 00:00:00 2001 From: Marc Jauvin Date: Wed, 7 Sep 2022 14:48:01 -0400 Subject: [PATCH 1/4] add extendable.afterConstruct event --- src/Extension/ExtendableTrait.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/Extension/ExtendableTrait.php b/src/Extension/ExtendableTrait.php index d8dbf998f..21031e23c 100644 --- a/src/Extension/ExtendableTrait.php +++ b/src/Extension/ExtendableTrait.php @@ -101,6 +101,19 @@ public function extendableConstruct() $this->extendClassWith($useClass); } + + /** + * @event extendable.afterConstruct + * Called after the dynamic behaviors have been loaded. + * + * Example usage: + * + * $model->bindEvent('extendable.afterConstruct', function () use (\Winter\Storm\Database\Model $model) { + * \Log::info(get_class($model) . ' has booted and behaviors are loaded'); + * }); + * + */ + $this->fireEvent('extendable.afterConstruct'); } /** From e1bb6aff28772bc55e813fe37e1771f3b29a47ba Mon Sep 17 00:00:00 2001 From: Marc Jauvin Date: Wed, 7 Sep 2022 16:02:12 -0400 Subject: [PATCH 2/4] add dummy fireEvent() method --- tests/Extension/ExtendableTest.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tests/Extension/ExtendableTest.php b/tests/Extension/ExtendableTest.php index 4e7a6efb7..f6b6f94e8 100644 --- a/tests/Extension/ExtendableTest.php +++ b/tests/Extension/ExtendableTest.php @@ -355,6 +355,12 @@ public function getProtectedFooAttribute() { return $this->protectedFoo; } + + // dummy method to appease test case on mock object + public function fireEvent($event) + { + return $event; + } } /* From a8f26b0c3b1dbecf2e9687ce807862ea0171ee21 Mon Sep 17 00:00:00 2001 From: Marc Jauvin Date: Wed, 7 Sep 2022 16:06:37 -0400 Subject: [PATCH 3/4] Revert "add dummy fireEvent() method" This reverts commit e1bb6aff28772bc55e813fe37e1771f3b29a47ba. --- tests/Extension/ExtendableTest.php | 6 ------ 1 file changed, 6 deletions(-) diff --git a/tests/Extension/ExtendableTest.php b/tests/Extension/ExtendableTest.php index f6b6f94e8..4e7a6efb7 100644 --- a/tests/Extension/ExtendableTest.php +++ b/tests/Extension/ExtendableTest.php @@ -355,12 +355,6 @@ public function getProtectedFooAttribute() { return $this->protectedFoo; } - - // dummy method to appease test case on mock object - public function fireEvent($event) - { - return $event; - } } /* From 4b9176c1dc35121a49ccd354d084913f520cbcb2 Mon Sep 17 00:00:00 2001 From: Marc Jauvin Date: Wed, 7 Sep 2022 17:51:06 -0400 Subject: [PATCH 4/4] make sure the method exists --- src/Extension/ExtendableTrait.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Extension/ExtendableTrait.php b/src/Extension/ExtendableTrait.php index 21031e23c..df9d57e93 100644 --- a/src/Extension/ExtendableTrait.php +++ b/src/Extension/ExtendableTrait.php @@ -113,7 +113,9 @@ public function extendableConstruct() * }); * */ - $this->fireEvent('extendable.afterConstruct'); + if (method_exists($this, 'fireEvent')) { + $this->fireEvent('extendable.afterConstruct'); + } } /**