mezzio / mezzio-swoole

Swoole support for Mezzio
https://docs.mezzio.dev/mezzio-swoole/
BSD 3-Clause "New" or "Revised" License
89 stars 28 forks source link

WhoopsPrettyPageHandlerDelegator leads to undefined index error #46

Open arku31 opened 3 years ago

arku31 commented 3 years ago

Bug Report

Q A
Version(s) 3.1

Summary

vendor/mezzio/mezzio-swoole/src/ConfigProvider.php has delegator defined as

Mezzio\WhoopsPageHandler' => [
                    WhoopsPrettyPageHandlerDelegator::class,
],

Current behavior

This leads to Notice: Undefined index: Mezzio\WhoopsPageHandler in vendor/elie29/zend-phpdi-config/src/Config.php on line 137

How to reproduce

Expected behaviour

Whoops should not be tied to the application

weierophinney commented 3 years ago

What DI container are you using, please?

arku31 commented 3 years ago

Hi, I am using php-di/php-di 6.0

I got it offered via mezzio-skeleton

weierophinney commented 3 years ago

We may need to fix this in the php-di wrapper. It's common to define delegators even for services that are not registered, so that once they are, the delegators are present. This seems to be an issue where the wrapper that populates the php-di container is unhappy that the service does not exist when the delegator is registered.

arku31 commented 3 years ago

If someone will struggle as well: There is a workaround for it. In any ConfigProvider that you're registering in /config/config.php AFTER the \Mezzio\Swoole\ConfigProvider::class, you may overwrite this by providing an array that contains data that will overwrite the default value: in the getDependencies method, add 'delegators' => [ 'Mezzio\WhoopsPageHandler' => new \stdClass()]