<?php
interface ListenerAggregate {}
class EM {
public function attach($listener)
{
if($listener instanceof ListenerAggregate){
echo "Attached an aggregate\n";
}else{
echo "Attached regular callable\n";
}
}
}
class SomeAggregateListener implements ListenerAggregate {
public function __invoke()
{
// look ma, I'm a callable!
}
}
$em = new EM;
$aggregate = new SomeAggregateListener;
$em->attach($aggregate);