protected function checkListenerExpectedEvent($target, Event $event)
protected function checkListenerExpectedEvent($target, Event $event)
{
{
if (in_array($event->getName(), array(
'init',
'command',
'pre-file-download',
), true)) {
return $event;
}
try {
try {
$reflected = new \ReflectionParameter($target, 0);
$reflected = new \ReflectionParameter($target, 0);
} catch (\Exception $e) {
} catch (\Exception $e) {
@ -278,11 +286,13 @@ class EventDispatcher
// BC support
// BC support
if (!$event instanceof $expected && $expected === 'Composer\Script\CommandEvent') {
if (!$event instanceof $expected && $expected === 'Composer\Script\CommandEvent') {
trigger_error('The callback '.$this->serializeCallback($target).' declared at '.$reflected->getDeclaringFunction()->getFileName().' accepts a '.$expected.' but '.$event->getName().' events use a '.get_class($event).' instance. Please adjust your type hint accordingly, see https://getcomposer.org/doc/articles/scripts.md#event-classes', E_USER_DEPRECATED);
if (!$event instanceof $expected && $expected === 'Composer\Script\PackageEvent') {
if (!$event instanceof $expected && $expected === 'Composer\Script\PackageEvent') {
trigger_error('The callback '.$this->serializeCallback($target).' declared at '.$reflected->getDeclaringFunction()->getFileName().' accepts a '.$expected.' but '.$event->getName().' events use a '.get_class($event).' instance. Please adjust your type hint accordingly, see https://getcomposer.org/doc/articles/scripts.md#event-classes', E_USER_DEPRECATED);
if (!$event instanceof $expected && $expected === 'Composer\Script\Event') {
if (!$event instanceof $expected && $expected === 'Composer\Script\Event') {
trigger_error('The callback '.$this->serializeCallback($target).' declared at '.$reflected->getDeclaringFunction()->getFileName().' accepts a '.$expected.' but '.$event->getName().' events use a '.get_class($event).' instance. Please adjust your type hint accordingly, see https://getcomposer.org/doc/articles/scripts.md#event-classes', E_USER_DEPRECATED);