- Since: 3.2
- Description: Hook to allow adding custom listeners to watch property changes as they appear during a data update.
- Reference class:
PropertyChangeListener.php
Signature
use Hooks;
Hooks::register( 'SMW::Listener::ChangeListener::RegisterPropertyChangeListeners', function( PropertyChangeListener $propertyChangeListener ) {
return true;
} );
Example
use Hooks;
class ActOnPropertyChange {
public function registerPropertyChangeListener( PropertyChangeListener $propertyChangeListener ) {
$propertyChangeListener->addListenerCallback(
new DIProperty( 'PropertyFoo' ),
[ $this, 'onChange' ]
);
$propertyChangeListener->addListenerCallback(
new DIProperty( 'PropertyBar' ),
[ $this, 'onChange' ]
);
}
public function onChange( DIProperty $property, ChangeRecord $changeRecord ) {
if ( $property->getKey() === 'PropertyFoo' ) {
foreach ( $changeRecord as $record ) {
...
}
}
if ( $property->getKey() === 'PropertyBar' ) {
foreach ( $changeRecord as $record ) {
...
}
}
}
}
Hooks::register( 'SMW::Listener::ChangeListener::RegisterPropertyChangeListeners', function( PropertyChangeListener $propertyChangeListener ) {
$actOnPropertyChange = new ActOnPropertyChange();
$actOnPropertyChange->registerPropertyChangeListener( $propertyChangeListener );
} );