diff --git a/src/Metabor/Callback/Composite.php b/src/Metabor/Callback/Composite.php index 90af8ce..c343ce8 100644 --- a/src/Metabor/Callback/Composite.php +++ b/src/Metabor/Callback/Composite.php @@ -27,12 +27,12 @@ public function __invoke(mixed ...$args): mixed public function attach(CallbackInterface $callback): void { - $this->callbacks->attach($callback); + $this->callbacks->offsetSet($callback, null); } public function detach(CallbackInterface $callback): void { - $this->callbacks->detach($callback); + $this->callbacks->offsetUnset($callback); } public function getIterator(): \Traversable diff --git a/src/Metabor/Event/Event.php b/src/Metabor/Event/Event.php index a082744..dcd27d7 100644 --- a/src/Metabor/Event/Event.php +++ b/src/Metabor/Event/Event.php @@ -48,12 +48,12 @@ public function getName(): string public function attach(\SplObserver $observer): void { - $this->observers->attach($observer); + $this->observers->offsetSet($observer, null); } public function detach(\SplObserver $observer): void { - $this->observers->detach($observer); + $this->observers->offsetUnset($observer); } public function notify(): void diff --git a/src/Metabor/KeyValue/Composite.php b/src/Metabor/KeyValue/Composite.php index 53680a5..8b58f5c 100644 --- a/src/Metabor/KeyValue/Composite.php +++ b/src/Metabor/KeyValue/Composite.php @@ -16,12 +16,12 @@ public function __construct() public function attach(\ArrayAccess $keyValue): void { - $this->container->attach($keyValue); + $this->container->offsetSet($keyValue, null); } public function detach(\ArrayAccess $keyValue): void { - $this->container->detach($keyValue); + $this->container->offsetUnset($keyValue); } public function offsetExists(mixed $offset): bool diff --git a/src/Metabor/Observer/Subject.php b/src/Metabor/Observer/Subject.php index 487a6c9..f7ef902 100644 --- a/src/Metabor/Observer/Subject.php +++ b/src/Metabor/Observer/Subject.php @@ -17,12 +17,12 @@ public function __construct() public function attach(\SplObserver $observer): void { - $this->observers->attach($observer); + $this->observers->offsetSet($observer, null); } public function detach(\SplObserver $observer): void { - $this->observers->detach($observer); + $this->observers->offsetUnset($observer); } public function notify(): void diff --git a/src/Metabor/Statemachine/Factory/Factory.php b/src/Metabor/Statemachine/Factory/Factory.php index 731960c..10c4eda 100644 --- a/src/Metabor/Statemachine/Factory/Factory.php +++ b/src/Metabor/Statemachine/Factory/Factory.php @@ -41,12 +41,12 @@ public function setTransitonSelector(TransitionSelectorInterface $transitionSele public function attachStatemachineObserver(\SplObserver $observer): void { - $this->statemachineObserver->attach($observer); + $this->statemachineObserver->offsetSet($observer, null); } public function detachStatemachineObserver(\SplObserver $observer): void { - $this->statemachineObserver->detach($observer); + $this->statemachineObserver->offsetUnset($observer); } public function getStatemachineObserver(): \Traversable diff --git a/src/Metabor/Statemachine/Graph/GraphBuilder.php b/src/Metabor/Statemachine/Graph/GraphBuilder.php index e3838a4..c9b05e0 100644 --- a/src/Metabor/Statemachine/Graph/GraphBuilder.php +++ b/src/Metabor/Statemachine/Graph/GraphBuilder.php @@ -88,7 +88,7 @@ public function setStateLayout($flag, $value, array $layout) */ public function attachLayoutCallback(Callback $callback) { - $this->layoutCallback->attach($callback); + $this->layoutCallback->offsetSet($callback, null); } /** @@ -96,7 +96,7 @@ public function attachLayoutCallback(Callback $callback) */ public function detachLayoutCallback(Callback $callback) { - $this->layoutCallback->detach($callback); + $this->layoutCallback->offsetUnset($callback); } /** diff --git a/src/Metabor/Statemachine/Observer/SubjectHasUpdated.php b/src/Metabor/Statemachine/Observer/SubjectHasUpdated.php index 64fff59..bf0468c 100644 --- a/src/Metabor/Statemachine/Observer/SubjectHasUpdated.php +++ b/src/Metabor/Statemachine/Observer/SubjectHasUpdated.php @@ -12,9 +12,9 @@ class SubjectHasUpdated extends \SplObjectStorage implements \SplObserver public function update(\SplSubject $subject): void { if ($subject instanceof StatemachineInterface) { - $this->attach($subject->getSubject()); + $this->offsetSet($subject->getSubject(), null); } else { - $this->attach($subject); + $this->offsetSet($subject, null); } } } diff --git a/src/Metabor/Statemachine/State.php b/src/Metabor/Statemachine/State.php index d6c7164..ac78012 100644 --- a/src/Metabor/Statemachine/State.php +++ b/src/Metabor/Statemachine/State.php @@ -36,7 +36,7 @@ public function getTransitions(): \Traversable public function addTransition(TransitionInterface $transition): void { - $this->transitions->attach($transition); + $this->transitions->offsetSet($transition, null); $eventName = $transition->getEventName(); if ($eventName) { $this->getEvent($eventName); diff --git a/tests/Metabor/KeyValue/FilterTest.php b/tests/Metabor/KeyValue/FilterTest.php index a4b956c..dc03fb9 100644 --- a/tests/Metabor/KeyValue/FilterTest.php +++ b/tests/Metabor/KeyValue/FilterTest.php @@ -19,10 +19,10 @@ public function testFiltersArrayAccessObjectsByCriteria(): void $iterator = new \SplObjectStorage(); $keyValue1 = new \ArrayIterator(); $keyValue1[$key] = $value1; - $iterator->attach($keyValue1); + $iterator->offsetSet($keyValue1, null); $keyValue2 = new \ArrayIterator(); $keyValue2[$key] = $value2; - $iterator->attach($keyValue2); + $iterator->offsetSet($keyValue2, null); $criteria = new Criteria(array($key => $value1)); $filtered = new Filter($iterator, $criteria); diff --git a/tests/Metabor/Statemachine/Transition/ActiveTransitionFilterTest.php b/tests/Metabor/Statemachine/Transition/ActiveTransitionFilterTest.php index d6f39cc..b5290b5 100644 --- a/tests/Metabor/Statemachine/Transition/ActiveTransitionFilterTest.php +++ b/tests/Metabor/Statemachine/Transition/ActiveTransitionFilterTest.php @@ -37,9 +37,9 @@ public function testFiltersAllNotActiveTransitions(): void $transitions = new \SplObjectStorage(); $transitionActive = $this->createTransition(true, $subject, $context, $event); - $transitions->attach($transitionActive); + $transitions->offsetSet($transitionActive, null); $transitionNotActive = $this->createTransition(false, $subject, $context, $event); - $transitions->attach($transitionNotActive); + $transitions->offsetSet($transitionNotActive, null); $filteredTransitions = new ActiveTransitionFilter($transitions, $subject, $context, $event); $this->assertContains($transitionActive, $filteredTransitions);