Class EventCollection
Events collected from the "hooks" config or attached by the user.
-
ICanBoogie\EventCollection
implements
IteratorAggregate
Namespace: ICanBoogie
Located at EventCollection.php
Methods summary
public
__construct( array $definitions
= [] )
Parameters
$definitions
- Event hooks grouped by type.
public
getIterator( void )
Returns an iterator for event hooks.
Returns an iterator for event hooks.
Implementation of
IteratorAggregate::getIterator()
protected
revoke_traces( void )
Revokes consolidated hooks and skippable types.
Revokes consolidated hooks and skippable types.
public
attach( string|callable $type_or_hook
, callable $hook
= null )
: ICanBoogie\EventHook
Attaches an event hook.
The name of the event is resolved from the parameters of the event hook. Consider the
following code:
<?php
$events->attach(function(ICanBoogie\Operation\BeforeProcessEvent $event, ICanBoogie\Module\Operation\SaveOperation $target) {
});
The hook will be attached to the ICanBoogie\Module\Operation\SaveOperation::process:before
event.
Parameters
$type_or_hook
- Event type or event hook.
$hook
- The event hook, or nothing if $type is the event hook.
Returns
Throws
InvalidArgumentException
when $hook
is not a callable.
public
attach_many( array $definitions
)
Attaches many event hooks at once.
Attaches many event hooks at once.
Note: The event hooks must be grouped by event type.
Parameters
public
attach_to( object $target
, callable $hook
)
: ICanBoogie\EventHook
Attaches an event hook to a specific target.
Attaches an event hook to a specific target.
Parameters
Returns
public
once( string|callable $type_or_hook
, callable $hook
= null )
: ICanBoogie\EventHook
Attaches an event hook that is detached once used.
Attaches an event hook that is detached once used.
Parameters
$type_or_hook
- Event type or event hook.
$hook
- The event hook, or nothing if $type is the event hook.
Returns
See
public
detach( string $type
, callable $hook
)
Detaches an event hook.
Parameters
$type
- The name of the event.
$hook
- The event hook.
Throws
Exception
when the event hook is not attached to the event name.
public
skip( string $type
)
Marks an event as skippable.
Marks an event as skippable.
Parameters
public
is_skippable( string $type
)
: boolean
Returns whether or not an event has been marked as skippable.
Returns whether or not an event has been marked as skippable.
Parameters
Returns
boolean
true
if the event can be skipped, false
otherwise.
public
get_hooks( string $type
)
: array
Returns the event hooks attached to the specified event type.
Returns the event hooks attached to the specified event type.
Parameters
Returns
array
public
resolve_original_hook( mixed $hook
)
: callable
Resolves original hook.
Parameters
Returns
callable
Properties summary
protected
$hooks
: array
[]
protected
$consolidated_hooks
: array
Event hooks by class and type.
Event hooks by class and type.
[]
protected
$original_hooks
: SplObjectStorage
[]
protected
$skippable
: array
[]